中易网

Java 封装概念 get set 与 直接使用成员变量的区别?

答案:7  悬赏:20  
解决时间 2021-01-15 09:35
  • 提问者网友:我的未来我做主
  • 2021-01-15 00:45
Java 封装概念 get set 与 直接使用成员变量的区别?
最佳答案
  • 二级知识专家网友:轻熟杀无赦
  • 2021-01-15 01:45
get方法是给私有成员变量取值的,set方法是赋值的,而成员变量的值只能在本类中被使用,而且改变的时候容易引起新的问题
比如:
private String age;
private String id;
如果没有get,set你就无法赋值String age和String id。
规则上来说是没什么区别的, 用get, set, 是因为在这里面可以多做很多事情, 比如set一个字符串, 你把它转化为内部实际使用的整数(为了效率), get的时候又把整数转化为字符(为了便于理解).

另外, 如果你用了继承, set的时候可以调用父类的相应方法......
总之get, set有一些便利, 所以很多编辑器直接支持了。
全部回答
  • 1楼网友:长青诗
  • 2021-01-15 05:09
en
  • 2楼网友:纵马山川剑自提
  • 2021-01-15 04:06
没什么区别, 用get, set, 是因为在这里面可以多做很多事情, 比如set一个字符串, 你把它转化为内部实际使用的整数(为了效率), get的时候又把整数转化为字符(为了便于理解).
另外, 如果你用了继承, set的时候可以调用父类的相应方法......
总之get, set有一些便利, 所以很多编辑器直接支持了.
  • 3楼网友:一秋
  • 2021-01-15 03:36
面向对象编程有个封装的概念,即不将本身属性暴露给外部,即类属性应该定义为private,所以才用get,set的方法来赋值和取值。
  • 4楼网友:痴妹与他
  • 2021-01-15 03:08
一般定义属性的时候,都定义成private的,也就是这个类私有的,这样从封装的概念将,比较安全,但是有些属性是需要外部类来使用的,所以就通过get和set方法来把这些属性类似公有话。从使用意义上讲没什么区别,但是从程序的安全性和健壮性来讲,使用get和set方法是最合理的。
等你写的程序多了,看的多了,自然而然的就明白了。谢谢
  • 5楼网友:渡鹤影
  • 2021-01-15 02:14
String age;
String id;
规则上来说,应该是
private String age;
private String id;
没有get,set你就无法赋值。
  • 6楼网友:躲不过心动
  • 2021-01-15 02:00
JavaBean的属性一般都要设置成private,并根据需要提供getter/setter,这样可以提供更高级的控制(这时可以变换形式,比如不用public改用protected,再比如只提供getter不提供setter)
实现的高级功能有只读、只写、数据转换、加密、继承时改写等,而这些是你直接操作变量 无法完成(!!!) 的。
另外有些IDE或框架也要求实现这种方法来自动匹配,比如JSF
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息