一个类提供这两个方法,通常都是public的,意味着任何地方都可以new一个对象然后通过setter修改他们的成员变量,那这个成员变量修饰为private有用什么作用?何不直接就实例.属性修改?
一个类提供这两个方法,通常都是public的,意味着任何地方都可以new一个对象然后通过setter修改他们的成员变量,那这个成员变量修饰为private有用什么作用?何不直接就实例.属性修改?
由于stackoverflow上已有人提出过这个问题,并且解答也很好,我就直接搬运最高票过来,并稍作翻译。
4 回答1.5k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
3 回答1.9k 阅读
2 回答778 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.3k 阅读
Java封装是否多余?
我们在学习Java的时候,书上告诉我们面向对象都是具有封装性的。那怎么体现封装性呢?就是将我们的成员变量用private进行修饰。
给出这个成员变量的set、get方法。这样就体现了封装性了。
那我们有没有想过,这是为什么呢??我们每次都要写一大堆的set、get方法,干嘛呢??就为了体现它这么一个封装性??封装性又体现在哪呢??
我们日常中给这些变量赋值的时候都是setXXX()这样子。
那如果我们不设置成private,直接设置成public的话。赋值起来不是更加简单??例如:
看完上边的代码,我们会发现:封装性究竟体现在哪??这不是搞我吗?他俩实现的效果不是一样的吗?都是赋值而已啊。
对啊,对于上面的代码,确实是这样的。如果自己用的话,那他俩实际的效果是一样的,没啥多大的区别。
那我们为什么要封装?
我觉得java中需要封装,有下面几个原因:
我觉得第二点和第三点是我们需要使用Java中set、get方法的主要原因。