目录
- 什么是this
java虚拟机会给每个对象分配一个this,代表当前对象;
this 关键字是 Java 常用的关键字,可用于任何实例方法内指向当前对象,也可指向对其调用当前方法的对象,或者在需要当前类型对象引用时使用。
小结:简单的说,哪个对象调用,this就代表哪个对象。
一、this的注意事项和使用细节
1.this关键字可以用来访问本类的属性、方法、构造器
2.this用于区分当前类的属性和局部变量
3.访问成员方法的语法:this.方法名(参数列表);
4.访问构造器的语法:this(参数列表);注意:只能在构造器里使用(即只能在构造器里访问另一个构造器,并且需把this放在第一条语句)
5.this不能在类义的外部使用,只能在类定义的方法中使用
public class ThisDetail{
public static void main(String[] args){
// T t1 = new T();
// t1.f2();
T t2 = new T();
t2.f3();
}
}
class T{
String name = "jack";
int num = 1000;
/*
细节4:访问构造器语法:this(参数列表);
注意只能在构造器中使用(即只能在构造器中访问另外一个构造器, 必须放在第一条语句)
注意:访问构造器语法:this(参数列表);必须放在第一条语句
*/
public T(){ //无参构造器
//从这里去访问T(String name,int age)构造器,this必须放在第一条语句
this("jack",100);
System.out.println("T() 构造器被调用");
}
public T(String name, int age){ //构造器
System.out.println("T(String name, int age)被调用");
}
//细节3:访问成员方法的语法:this.方法名(参数列表);
public void f1(){
System.out.println("f1()方法被调用");
}
public void f2(){
System.out.println("f2()方法被调用");
//调用本类的方法f1
//第一种方式
f1();
//第二种方式
this.f1();
}
public void f3(){
String name = "smith";//局部变量
//传统方法
//传统方法按照就近原则访问,如果当前局部变量有name,就会访问当前的局部变量
System.out.println("name=" + name + " num=" + num);
//也可以使用this访问属性
//this是准确的访问属性
System.out.println("name=" + this.name + " num=" + this.num);
}
}