Posted on 2010-05-17 16:27
eric_xu 阅读(324)
评论(0) 编辑 收藏 所属分类:
Java
任何对象变量的值都是对一个对象的引用。
显示参数和隐式参数。
class Employee
{
. . .
private final String name;
}
private final Date hiredate;
final应用于基本数据类型,表示值不可变,应用于类对象,表示对象的引用不可变。
一个引用不能改变作为参数的基本类型数据,但能改变对象,因为传入的参数是对象的引用,不能改变对象引用。
main()是一个程序执行的入口,系统必须先进入这个入口,也就是先要调用main()函数,才能继续程序的执行,如果main()不用static修饰,系统就没法进行调用,因为一开始系统不能创建任何对象。而加上了static后,系统就可以直接调用main()函数了,从而继续程序的执行。
public static void swap(Employee x, Employee y) // doesn't work
{
Employee temp = x;
x = y;
y = temp;
}
Employee a = new Employee("Alice", . . .);
Employee b = new Employee("Bob", . . .);
swap(a, b);
a,b的引用没有改变。
一个方法不能改变一个基本类型的参数
一个方法可以改变一个对象参数的状态
一个方法不能让对象参数引用一个新对象
默认值:数值为0,对象为null,布尔型为false
public Employee(String name, double salary)
{
this.name = name;
this.salary = salary;
}
This指示隐式参数,即被构造的类对象。
public Employee(double s)
{
// calls Employee(String, double)
this("Employee #" + nextId, s);
nextId++;
}
This将调用同一个类的另一个构造函数。
初始化块
// static initialization block
static
{
Random generator = new Random();
nextId = generator.nextInt(10000);
}
可以为任何一个类添加finalize方法,finalize方法将在垃圾回收器清除对象之前被调用。因为某些对象使用了内存之外的其他资源,如文件。