this表示当前对象,可以调用类的属性、方法和构造器
我们在创建一个类的构造器时,构造器的形参名字该怎么选择?
class Dog(){ String name; int age; } public Dog(String dName, int dAge){//能否将形参的名字直接改成属性名? name = dName; age = dAge; } public Dog(String name, int age){//编译器不会报错,但是根据变量的作用域原则(就近原则),构造器的方法体里面的name和age都是局部变量,而不是属性。会导致属性赋值失败。 name = name; age = age; }
解决方法:引出this关键字来解决
简单的说,哪个对象调用,this就代表哪个对象
可以认为this相当于对象的隐藏属性,它指向的是自己
this关键字可以用来访问本来的属性、方法、构造器
this用于区分当前类的属性和局部变量
注意:通过使用this可以明确访问的是类的属性而不是对应作用域的其他同名变量
(上面图片的两种方式有区别,但还没学到)