java - 为什么 java.awt.Dimension 有公共(public)变量?

标签 java awt

public 变量的类在封装中被认为是弱的,这不是一个糟糕的设计实践吗?

如果是这样,为什么 java.awt.Dimension 有 2 个公共(public)变量 widthheight

最佳答案

我认为公开公共(public)字段并不违反封装本身。封装是实体的属性,实体内部隐藏着复杂的内部结构。这个复杂的结构不能直接访问,因此没有被破坏的风险。它只能通过公共(public)方法访问,这使得它们可以很好地工作并且不会破坏复杂的内部结构。例如,我们无法直接访问 HashMap 的哈希表,也无法破坏它。我们只使用 getput 方法来正确处理哈希表状态。但是Dimension对象的复杂结构在哪里呢?当我们只写 d.width = 23 时,哪些东西会出错?

我认为在这种情况下使用公共(public) getter/setter 而不是公共(public)字段是有原因的:品味和惯例。我想后者更重要。但这也取决于我们应用这些约定的地点和目的。

关于java - 为什么 java.awt.Dimension 有公共(public)变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20209942/

相关文章:

java - 是否可以在 :8888 in webdefault. xml 中运行主 Servlet 和 ProxyServlet?

java - 无法在java中正确实现readLine

java - 使用 java.awt.Toolkit 捕获全局按键

java - 如何以绝对定位将组件添加到 JComponent 中?

java - 我如何在 java 中渲染图像上的包装文本

java - 如何使 Date 语言环境独立?

sdk - JDK和Java SDK的区别

java - 当我们写入时创建了多少个对象

Java 2D 图形矩形

java - 尽量不要混合使用 Swing 和 AWT