您的位置:首页 > 其它

为什么要用set,get方法封装字段

2017-04-06 09:52 369 查看
一个属性如果设置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);
}
}


现在输出的结果是(大家应该都明白的):

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: