目录
- 第一卷
- 第二卷
Java有一个特殊的实例值叫this,它用来在一个成员函数内部指向当前的对象。在前面的例子里,我们调用u.init,一?copy;进入init成员函数内部,this就会指向u所指向的对象。在Java里,在同一个范围定义两个相同名字的局部变量是不可以的。有趣的是,局部变量、成员函数的参数可以和实例变量的名字相同。前面我们没有用name和city作为成员函数init的参数名字,因为这样它们在成员函数的范围里就把实例变量name和city隐藏了,即name指向参数name,隐藏了实例变量name。this让我们可以直接指向对象本身。下面是另一个版本的init,用name和city作为参数名字,用this来接收当前对象的实例变量。
voidinit(Stringname,Stringcity){
this.name=name;this.city=city;
}
下面是带有新的init初始成员函数的TwoUniversity例子。
classUniversity{
Stringname,city;
voidinit(Stringname,Stringcity){
this.name=name;this.city=city;
}
}
classTwoUniversityInit{
publicstaticvoidmain(Stringargs[]){
Universityu1=newUniversity();
Universityu2=newUniversity();
u1.init(\"北?copy;大学\",\"北?copy;\");
u2.init(\"清华大学\",\"北?copy;\");
System.out.println(\"大学:\"+u1.name+\"城市:\"+u1.city);
system.out.println(\"大学:\"+u2.name+\"城市:\"+u2.city);
}
}