【发布时间】:2014-07-18 00:44:44
【问题描述】:
我一直在使用一本迄今为止非常出色的 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 height; (即时变量) 我们不应该说 object.height = 0; (“对象”是一个随机参考变量)。在我的小程序中,它只是一条狗的高度,有一个简单的限制。这并不意味着有意义,但我只是试图理解这个概念。当程序员需要使用彼此的代码时,封装只是用于编程公司。比如说,做一个游戏还是有什么不同?
我还观看了一个视频,它还指出它只是让代码更易于管理。但是我仍然不觉得我完全理解这个概念。有人可以简单地向我解释一下。请注意,我是初学者,不会理解涉及中间代码的示例。
感谢您的帮助。
【问题讨论】:
-
我发现 getter setter 的唯一作用是在 java beans en.wikipedia.org/wiki/JavaBeans
-
哈哈我猜我在推它。也许只知道它的主要用途就足够了:) 简单?隐藏代码?也许这两个?
-
你有特定的内置标签,如果你使用了正确的 getter/setter,可以节省你的时间。只要定义它们应该的样子,jsp 会做剩下的事情。你不能在 jsp 中逃避它们,但是对于普通编程,您可以按照自己的方式定义函数
-
Niang - 谢谢你的链接,这对我很有帮助。
标签: java oop encapsulation setter getter