Java中this是什么?
*在Java中,this关键字比较难理解,它的作用和其词义很接近。
它在方法内部使用,即这个方法所属对象的引用;
它在构造器内部使用,表示该构造器正在初始化的对象。
* this 可以调用类的属性、方法和构造器
* 什么时候使用this关键字呢?
* 当在方法内需要用到调用该方法的对象时,就用this。 具体的:我们可以用this来区分属性(也叫成员变量)和局部变量。 比如:this.name = name;
* 使用this,调用属性、方法(属性即成员变量叫法不同而已)
class Person{ // 定义Person类
private String name ;
private int age ;
public Person(String name,int age){
this.name = name ; //加this的this.name和this.age指的是成员变量,未加this的等号后面的
//name和age指的是形参中的局部变量
this.age = age ;
}
public void getInfo(){
System.out.println("姓名:" + name) ;
this.speak();//调用这个类中的方法speak()
}
public void speak(){
System.out.println(“年龄:” + this.age);
}
}
当前正在 *** 作本方法的对
象称为当前对象。
class Person{ // 定义Person类
String name;
Person(String name){
this.name = name;
}
public void getInfo(){
System.out.println("Person类 --> " + this.name) ;
}
public boolean compare(Person p){
return this.name==p.name;//判断当前对象的name是否与形参中对象p的name相同
//例如后面执行的这句代码:boolean b = per1.compare(per2);,per1为当前对象,per2为形参
//中的对象
}
}
public class PersonTest{
public static void main(String args[]){
Person per1 = new Person("张三") ;
Person per2 = new Person("李四") ;
per1.getInfo() ; // 当前调用getInfo()方法的对象是per1
per2.getInfo() ; // 当前调用getInfo()方法的对象是per2
boolean b = per1.compare(per2);
}
}
*使用this调用本类的构造器
this可以作为一个类中 构造器相互调用的特殊 格式
class Person{ // 定义Person类
private String name ;
private int age ;
public Person(){ // 无参构造器
System.out.println("新对象实例化") ;
}
public Person(String name){
this(); // 调用本类中的无参构造器
this.name = name ;
}
public Person(String name,int age){
this(name) ; // 调用有一个参数的构造器
this.age = age;
}
public String getInfo(){
return "姓名:" + name + ",年龄:" + age ;
}
}
注意:
可以在类的构造器中使用"this(形参列表)"的方式,调用本类中重载的其 他的构造器!
明确:构造器中不能通过"this(形参列表)"的方式调用自身构造器
如果一个类中声明了n个构造器,则最多有 n - 1个构造器中使用了 "this(形参列表)"
"this(形参列表)"必须声明在类的构造器的首行!
在类的一个构造器中,最多只能声明一个"this(形参列表)"
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)