1.写一个private的栗子,发现输出为null和0,也就是成员变量堆中初始化的值而非设置的值
package package_01;
public class Students {
private String name;
private int age;
public void setName(String n) {
name=n;
}
public void setAge(int a) {
if(a<0||a>100) {
System.out.print("input false!");
}else {
age=a;
}
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
package package_01;
public class learn {
public static void main(String[] args) {
// TODO Auto-generated method stub
Students s=new Students();
String name="lin";
s.setName(name);
s.setAge(28);
System.out.print(s.getName()+"-----"+s.getAge());
}
}
报错原因:1.没有在类方法前写public,导致方法没有暴露出去
2.方法的传参有问题,name=name,age=age编辑器好像并不能识别出来是什么意思
可以用this.name=name => this修饰的变量用于指代成员变量
什么时候用this?解决局部变量隐藏成员变量



