前面几章自行查看~
4.3 封装的优点
- 访问器如果要返回一个对象,再返回之前首先要对其进行克隆(
clone
)。避免其在其它地方被改变状态,破坏封装性。
4.5方法参数(page#121)
Java采用的是按值调用。也就是说,方法所得到的是所有参数值的一个拷贝,特别是,方法不能修改传递给它的任何参数变量的内容。
在Java中方法参数的使用情况:
- 一个方法不能修改一个基本数据类型的参数(即数值型和布尔型)。
- 一个方法可以改变一个对象参数的状态。
- 一个方法不能让对象参数引用一个新的对象。
4.6 对象构造
方法的签名:方法名 + 参数类型 (例如:
indexOf(int)
,indexOf(int, int)
)。返回类型不作为签名的一部分。也就是说,一个类中不能存在方法名和参数类型都相同,但返回类型不同的方法。
构造器
- 如果类中不存在构造器,那么在初始化时系统会提供一个无参构造器。
- 如果类中至少有一个构造器,但是没有无参构造器,这时初始化类的不提供参数的话会被视为不合法,即系统不再提供无参构造器。
构造器调用步骤
1) 所有数据域被初始化为默认值(0、false或null)。
2) 按照类声明中出现的次序,一次执行所有域初始化语句和初始化块。
3) 如果构造器第一行调用了第二个构造器,则执行第二个构造器主题。
4) 执行这个构造器的主体。可以使用静态初始化块来对静态域进行初始化。
private static int nextId;
// static initialization block
static
{
Random generator = new Random();
nextId = generator.nextInt(1000);
}