- 一个属性如果设置public是很危险的,如将人的身高属性设为-1,大家都知道人的身高不能使负值,但对于一个public的属性来说,你无法阻止其他类的胡作非为。
- 下面来举个小例子
先来说一个段public的代码
public class Person{
public int height;
}
-----------------------------------------------
public class Main{
public static void main(String[] args) {
Person p = new Person();
p.height=-1;
}
}
再看一下用set,get方法的好处
public class Person{
private int height;
public void setHeight(int height){
public int getHeight() {
return height;
}
public void setHeight(int height) {
if(height<=0){
System.err.println("s身高不能是负值"+height);
return;
}
this.height = height;
}
}
--------------------------------------------------------
public class Main{
public static void main(String[] args) {
Person p = new Person();
//p.height=-1;因为属性设置成private,所以p.height=-1;
p.setHeight(-1);
}
}
现在输出的结果是(大家应该都明白的):