关于java中很多人用get()和set()方法,而不用public的一点总结

2024-11-13 03:45:56
推荐回答(5个)
回答(1):

我觉得还有一个好处是代码的可读性高。如果你在类中操作其他类的变量都是通过对象名.属性,我觉得我看起来想死,可能是因为代码写多了吧= =

另外那个拿钱的例子,我觉得不是说所有人的手都可以去拿,而是所有人都可以让这个人通过他自己的手拿钱给你,另外你说的最后一句话,是说明这样类好扩展,
比如你原先是分数限制在0-100 在好多类中都调用了。你要是直接通过属性去获取,那就需要在那些类中额外加个判断。但是要是使用set()方法 你就只用写一句,而且万一你条件变了,你也只需要改掉这个类的set()方法,其他类根本就完全剥离了,所以也算一个好处

另外还看到一个 如果你这个变量只允许get 不允许set 那这样意义不就出来了。

回答(2):

“我只知道用get()和set()有一个好处,当输入.get(.set) 时就能显示所有的属性。”

难道把所有属性设置成public不能在输入.的时候显示所有属性吗?

还有最后一个原因太牵强啊,setScore(-100)不是一样可以吗?跟score= -100有啥区别?
我表示不赞同你。

回答(3):

我觉得 使用get和set 的原因是:如果你将变量设置成public,那你没得选,你的变量一定可以被读取和修改,但是用封装的方式,你可以通过控制是否提供get 和 set 方法来控制你的变量是否可以被读写,比如说我不提供set方法,那说明这个变量只读,自然就安全了

回答(4):

兄弟看你是犯强迫症了吧.
被我说中了吧.
都是一样的人,也没有必要太丢丢 .
其实你想啊.有一个学生类是这样的.
public class Student{
public int score;
}
哎,人家一看这个类也太开放了,我欺负欺负你.然后创建一个学生,叫小明
Student xiaoMing =new Student();
开始欺负他了:
xiaoMing.score=-60;
太过分了,作为一个学生,不及格就是一种极大的耻辱了,竟然还给我了负分数,小明一向调皮,但这也欺人太甚.
于是小明努力学习编程.修改了这个学生类.
public class Student{
private int score;
public void setScore(int score){
this.score=score;//给我多少算多少
if(score<0){//但是给我个负数欺负我,我就
score=60;//给我来个60分
}
public int getScore(){
return this.scroe;
}
}
当有人来调用这个类的时候,只能是这样了:
Student xiaoMing=new Student();
xiaoMing.setScore(-60);//给我个负数试试
int score= xiaoMing.getScore();
System.out.println(score);
//结果应该是:
60 //给的再少我也能及格..
哈哈..
纯手打的.好累呀.别较真了,兄弟..

回答(5):

想给你个赞但是没办法点