/* 如果我们构造器的形参,能够直接写成属性名,就更好了 但是出现了一个问题,根据变量的作用域原则 构造器的 name 是局部变量,而不是属性 构造器的 age 是局部变量,而不是属性 引出 this 关键字来解决 */ public class Test3 { public static void main(String[] args){ Dog d1 = new Dog("tom" , 20); } } class Dog{ String name; int age; public Dog(String name , int age){ this.name = name; this.age = age; System.out.println("name =" + name + " "+ "age =" + age); } }
哪个对象调用,this就代表哪个对象
this的注意事项和使用细节
-
this 关键字可以用来访问本类的属性、方法、构造器
-
this 用于区分当前类的属性和局部变量
-
访问成员方法的语法:this.方法名(参数列表)
-
访问构造器语法:this(参数列表); 注意只能在构造器中使用(即只能在构造器中访问另外一个构造器, 必须放在第一条语句)
-
this 不能在类定义的外部使用,只能在类定义的方法中使用。