Java的对象和类的一些笔记

1.尽量不要编写返回引用可变对象的访问器方法。这样会破坏封装性。举一个例子。

[java]
class Employee
{
private Date hireDay;

public Date getHireDay(){
return Date hireDay;
}

}
[/java]

如果我们现在执行下面的语句

Date d=tom.getHairday();,这时候d和tom.hireday引用了同一个对象,对d调用更改器方法,就会修改我们本来封装起来的数据。所以如果需要返回一个可变对象的引用,应该对它进行克隆。上面的访问器方法中的return语句需要修改一下return hireDay.clone();

2.final修饰符对于可变的类,例如final Date birthday这仅仅意味着birthday这个引用不能再重新指向一个新new出的Date类对象,我们可以通过setTime更改器方法修改birthday引用的对象的值。

3.Java的方法参数都是传值引用,这也就意味着通过方法调用我们无法修改基本类型数据变量的值。但是我们可以通过方法改变一个对象参数的状态,但是一个方法并无法让对象参数引用一个新的对象,这一点和C、C++的指针很不同。

4.如果类中提供了至少一个构造方法,但是没有提供无参数的构造方法。此时如果我们在构造对象的时候没有提供参数,就会被视为非法。

5.调用构造器(构造方法)的具体步骤:

1).所有数据都被初始化为默认值。

2).按照在类声明的顺序,依次执行所有域初始化语句和初始化块。

3).如果构造器第一行调用了第二个构造器,则执行第二个构造器主体。

4).执行这个构造器的主体

6.如果把域声明为static,每个类则只有这一个域。也就是说这个域不属于任何对象,只属于这个类。每一个对象的对于所有的实例域都有一份自己的拷贝,但是这些对象却共享静态域。只有在类第一次加载的时候才会初始化静态域。

7.标记为public的部分可以被任意的类使用,标记为private的部分只可以被定义它们的类使用,如果没有被指定public或者private,这个部分可以被同一个包的所有方法访问。

发表评论

电子邮件地址不会被公开。 必填项已用*标注