第四章 对象与类
1、静态字段与静态方法
1.1静态字段
如果一个字段定义为static,每个类只有一个这样的字段。而对于非静态的实例字段,每个对象都有自己的一个副本。
1.2静态常量
例如如下代码:
public class Math
{
...
public static final double PI = 3.1415926;
...
}
如果省略static,PI就成了Math类的一个实例字段,也就是说,需要通过Math类的一个对象来访问PI,且每一个对象都有自己的一个PI副本。
1.3静态方法
静态方法是不在对象上执行的方法。以下有两种情况下可以使用静态方法:
a.方法不需要访问对象状态,因为它需要的所有参数都通过显式参数提供;
b.方法只需要访问类的静态字段。
2、对象构造
2.1重载
有些类有多个构造器,这种功能叫做重载。如果多个方法有相同的名字、不同的参数,便出现了重载。
2.2初始化块
初始化数据字段的方法除了在构造器中设置值、在声明中赋值之外,还有第三种机制,称为初始化块。在一个类的声明中,可以包含任意多个代码块,只要构造这个类的对象,这些块就会被执行。顺序是先运行初始化块,再运行构造器的主体部分。
下面是调用构造器的具体处理步骤:
(1)如果构造器的第一行调用了另一个构造器,则基于所提供的参数执行第二个构造器。
(2)否则,
a.所有数据字段初始化为其默认值(0,false或null)
b.按照在类申明中出现的顺序,执行所有字段初始化方法和初始化块。
(3)执行构造器的主体代码。