开发测试学习
目录

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);
  }
}