案例引入
在对象类的代码中
public class Student {
String name;
private int age;
public void setAge(int age){
age = age;
}
public int getAge(){
return age;
}
public void study(){
System.out.println("学习");
}
public void doHomeword(){
System.out.println("做作业");
}
}
如果setAge()中的形参和用户变量同名会发生什么呢?
下面展示一些 测试类代码
。
package THIS;
public class StudentCase {
public static void main(String[] args) {
THIS.Student s = new THIS.Student();
s.name = "小明";
s.setAge(30);
s.study();
s.doHomeword();
System.out.println(s.name + "-------" + s.getAge());
}
}
分析原因
这是因为在方法setAge里面两个age都是局部变量,所以没有成功赋值到用户变量age中。
那么该如何告诉计算机第一个的age是用户变量,而第二个age是局部变量呢??
解决方法
引入this关键词
在对象代码中,setAge中第一个age前面加一个this,告诉计算机,第一个age是用户变量
package THIS;
public class Student {
String name;
private int age;
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
public void study(){
System.out.println("学习");
}
public void doHomeword(){
System.out.println("做作业");
}
}
可以看到30已经成功赋值给用户变量age了
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/95059.html