文章目录
- 1. this是什么?
- 2. this的作用
1. this是什么?
-
在 java 中,
this关键字
比较难理解,它的作用和其词义很接近。
①它在方法内部使用,即这个方法所属对象的引用;
②它在构造器内部使用,表示该构造器正在初始化的对象。 -
this 表示当前对象,可以调用类的属性、方法和构造器
-
什么时候使用
this关键字
呢?
当在方法内需要用到调用该方法的对象时,就用this
。
2. this的作用
先举例说明:
- 案例一
错误写法:
package day06;public class Person7 {public Person7(int age, String name) {age = age; //像这种情况编译器分不清哪个age是形参,哪个age是类的成员变量name = name; //同上}int age;String name;}
正确写法:
package day06;public class Person7 {public Person7(int age, String name) {this.age = age; //通过this关键字表明this.age是Person7的成员变量,age是构造器的形参this.name = name; //同上}int age;String name;}
- 案例二
更复杂的用法:
package day06;public class Person7 {public Person7(int age, String name) {this.age = age;this.name = name;}int age;String name;public void setName(String name) {this.name = name;}public void setName1(String name) {this.setName(name); //name是setName1里传递过来的形参,然后传递给setName的形参// this指类Person7(this.setName() = Person7.setName())}public void showInfo() {System.out.println("姓名:" + this.name);System.out.println("年龄:" + this.age);}
}
- 案例三
this 可以作为一个类中,构造器相互调用的特殊格式
代码如下:
package day06;public class Person7 {public Person7() {}public Person7(int age) {this.age = age;}public Person7(String name) {this(); // 等同于调用 无参构造器:public Person7()this.name = name;}public Person7(int age, String name) {this(1); // 等同于调用 有参构造器:public Person7(int age)this.age = age;this.name = name;}int age;String name;public void setName(String name) {this.name = name;}public void setName1(String name) {this.setName(name);}public void showInfo() {System.out.println("姓名:" + this.name);System.out.println("年龄:" + this.age);}
}
总结:
1.当形参与成员变量重名时,如果在方法内部需要使用成员变量,必须添加this来表明该变量时类成员
2.在任意方法内,如果使用当前类的成员变量或成员方法可以在其前面添加this ,增强程序的阅读性
3.this 可以作为一个类中,构造器相互调用的特殊格式
注意:
(1) 使用 this() 必须放在构造器的首行!
(2) 使用 this 调用本类中其他的构造器,保证至少有一个构造器是不用 this 的。(实际上就是不能出现构造器自己调用自己)