为什么要用get set 方法

本文探讨了在面向对象编程中使用get和set方法控制类成员变量的重要性。通过限制直接访问并加入验证逻辑,可以有效防止不合理数据的输入,提高了程序的安全性和健壮性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为了解决安全的问题
一个属性如果设置public是很危险的,如将人的身高属性设为-1,大家都知道人的身高不能使负值,但对于一个public的属性来说,你无法阻止其他类的胡作非为

用get()与set()控制变量。

  如果get()和set()方法里面只放一个赋值语句的话,和public变量应该没什么区别。
  但是设想,如果变量score代表的是一个学生的数学成绩,理论上,分数只可能是0-100的整数,如果把将score设为public,不用get()和set(),那么用户很可能会输入1-100以外的数字,如果把将score设为privata,再用setScore()来设置分数,就完全可以控制这种行为了。

比如
setAge(int age){
if(age<1||age>120)
throw new Exception(” 你输入的年龄不合法”);
}else{
this.age=age;
}

==============================================================================================

public class Person{
public int height;
}

public class Main{
public static void main(String[] args) {
Person p = new Person();
p.height=-1;
}
}


get set 好处

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);
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值