黑马程序员技术交流社区
标题:
小笔记
[打印本页]
作者:
徐朋威0716
时间:
2015-7-25 23:28
标题:
小笔记
1:请解释面向对象是什么?并举例说明?
答: 1、面向过程是以函数为基础,完成各种操作;
2、面向对象是以对象为基础。强调的是对象、结果;
3、以上两者都是一种思想。
面向对象是一种更加符合人们思考习惯;他可以将复杂问题简单化;将程序员从执行者变为指挥者。
2:类与对象的关系?
答:类就是成员变量和成员方法的一中集合,是一个抽象的概念。对象就是类的具体存在和体现。
3:类有哪些内容组成?
答:成员变量 -- 事物的属性;成员方法 -- 事物的行为,一些功能;构造函数 -- 对数据的初始化
4:局部变量和成员变量的区别?
答: A:定义位置不同 -- 成员变量在类中;局部变量在方法中,或者方法的形式参数
B:初始化值的区别:成员变量:有默认初始化值;局部变量没有初始化值,想使用必须先赋值;
C:存储位置不同:成员变量在堆中,随着对象的存在而存在,对象消失他也消失;局部变量存储在栈中,随着方法的调用而存在,随着方法的调用完毕而消失。
5:构造方法的特点及注意事项?
答: 1、如果没有给出构造函数,那么系统就默认给一个无参构造器
2、假如你给了构造函数,系统就不再提供构造函数
3、构造方法重载就是构造方法接收不同的参数
6:this关键字是什么?在什么时候使用?
答:this关键字就是:哪个对象调用方法,那么这个方法中就隐藏了一个this代表这个对象。
通过this可以调用成员方法和成员变量;用于解决局部变量隐藏成员变量值的问题。
7:给成员变量赋值的方式有几种?分别怎么实现?
答:A:给静态的成员变量赋值
(1)可以通过类中的方法给成员变量赋值(私有成员变量的也可以) public void setXXX(){...}
(2)可以通过构造方法给成员变量赋值(私有成员变量的也可以)public XXX(){...}
(3)可以通过代码块完成成员变量的初始化值(私有成员变量的也可以){xxx = ...;}
(4)可以通过类名.成员变量赋值 XXX.name = ...;
B:给非静态的成员变量赋值
(1)可以通过类的方法赋值 public void setXXX(){...}
(2)可以通过对象调用 xxx.name = ...;
(3)可以通过代码块完成成员变量的初始化值{xxx = ...;}
8:static关键字是什么?有什么特点?在什么时候使用?
答:他可以修饰成员变量和成员方法。被他修饰的内容,随着类的加载而加载,优先于对象存在,可以被类名直接调用,如果类中的某个内容被该类的所有对象所共有,那么,该内容就该被static修饰,没有被static修饰的其实就是属于对象的特有属性,特殊描述。
编程题目:
1:请写出一个标准的学生类(Student)
/**
*学生类:用于定义学生对象
*/
class Student
{
// 姓名
private String name;
// 年龄
private int age;
// 学号
private String num;
/**无参构造函数*/
public static Student(){}
/**有参构造函数*/
public static Student(String name, int age; String num)
{
this.name = name;
this.age = age;
this.num = num;
}
/**setName方法,给name赋值*/
public void setName(String name)
{
this.name = name;
}
/**getName方法,获取name值*/
public String getName()
{
return this.name;
}
/**setAge方法*/
public void setAge(int age)
{
this.age = age;
}
/**getAge*/
public int getAge()
{
return this.age;
}
/**setNum 设置学号*/
public void setNum(String num)
{
this.num = num;
}
/**getNum 获取学号*/
public String getNum()
{
return this.num;
}
/**show 方法,输出对象的属性值*/
public void show()
{
System.out.println("姓名是" + this.name + "年龄为:" + this.age+"的学生,学号为:" + this.num);
}
}
2:在测试类StudentTest中测试第一题的内容。
/**学生测试类*/
class StudentTest()
{
public static void main(String[] args)
{
Student student1 = new Student();
Student student2 = new Student("你是谁", 23, "12578");
student1.setName("徐朋威");
//...其他方法
student1.show();
student2.setName("我是..");
student2.show();
}
}
3:编写代码测试下面这句话:
静态方法只能访问静态成员(成员变量和成员方法)。
class TestDemo
{
static name;
public void show()
{
System.out.println(name);
}
public static String show(String name)
{
return name;
}
public static void mian(String[] agrs)
{
System.out.println(name);
show();
show("你是");
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2