标签:gen star 关键字 属性 turn start 必须 slice play
this代表对象, 代表的是当前对象, this里保存的是对象的地址.
谁是当前对象? 比如方法调用
t1.say() 在这个方法执行时
执行以下代码 :
public String say() {
return “姓名:” + name + “,年龄:” + age + “,性别:” + gender;
}
这段代码可以写成
public String say() {
return “姓名:” + this.name + “,年龄:” + this.age + “,性别:” + this.gender;
}
效果是一样的, 当前的对象是哪个对象呢? 就是调用这个方法的对象, t1.say()中的t1就是当前对象,显然这个当前对象在变化, 因为t2.say()调用时,this就是指的是t2了
this强调了使用当前对象, 有的时候属性如果和方法中的局部变量重名时, 为了区别必须使用this,在构造器重载时, 调用别的构造器也需要使用this. 两者的语法不一样
public class Teacher { private String name; private int age = 30; private String gender = “女”; public Teacher() { // 无参构造器 this(“佟刚”, 35, “女”); // 调用其他构造器 } public Teacher(String name, int age, String gender) { this.name = name; // this表示对象, 右侧的name是形参, 是局部变量 this.age = age; this.gender = gender; } public void setName(String name) { this.name = name; } public String getName() { return this.name; // 加上this也可以, 但是没有必须, 它暗含了this } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void setGender(String gender) { this.gender = gender; } public String getGender() { return gender; } public String say() { return “姓名:” + this.name + “,年龄:” + this.age + “,性别:” + this.gender; } } |
原文链接:http://www.atguigu.com/jsfx/11590.html
标签:gen star 关键字 属性 turn start 必须 slice play
原文地址:https://www.cnblogs.com/xiaobaizaixianzhong/p/14948693.html