我一直在使用一本迄今为止非常出色的Java书籍,但它并没有很好地解释我们使用setter和getter的原因.我搜索了其他帖子,但没有一个真正帮助过我.我将从书中发布一个程序并解释我的问题.
package lesson1; public class GoodDog { private int size; public void setSize(int sz){ if(sz > 10){ size = sz; } } public int getSize(){ return size; } }
二等:
package lesson1; public class GoodDogTestDrive { public static void main(String[] args) { GoodDog one = new GoodDog(); one.setSize(15); System.out.println(one.getSize()); } }
这是我的第一篇文章,所以如果没有代码那么请原谅我.不要问为什么这些课程被命名为,我没有想象力,只是使用了这本书的名字.
无论如何,我的理解是封装(对我来说这基本上意味着getter和setter)阻止了对即时变量的直接访问.唯一有效的原因是因为不应允许某些即时变量值.
比如说我们有int高度; (即时变量)我们不应该说object.height = 0; ('object'是随机引用变量).在我的小程序中,它只是一个狗的高度,只是一个简单的限制.这并不意味着有意义,但我只是想弄清楚这个概念.当程序员需要使用彼此的代码时,封装是否仅仅适用于编程公司.比如,以游戏为例,还是与众不同?
我观看了一段视频,说它只是简化了代码管理.但是我仍然不觉得我完全理解这个概念.有人可以用简单的语言向我解释.请注意,我是初学者,不会理解涉及中间代码的示例.
谢谢您的帮助.