我有两个关于 Java 的非常基本的问题:
首先,为什么导入 java.awt.* 不会同时导入 java.awt.geom.*? java.awt.geom 中的所有内容不都在 java.awt 中吗?从包的名称来看,我认为是这样。
其次,我的教授告诉我,对于这个矩形生成器项目,直接访问实例变量是不好的,我应该使用访问器方法。这是为什么?这只是惯例吗?例如:
Rectangle rectangle = new Rectangle(1, 2, 3, 4);
int tallness = rectangle.height; //"bad"
int tallness = rectangle.getHeight(); //"good"
根据我的理解,这两者都是有效的并且做完全相同的事情。唯一的区别是前者感觉更快。
此外,为什么访问器在该网站的拼写检查器中显示为拼写错误? (或者也许是 Chrome 的拼写检查器)
最佳答案
First of all, why is it that importing java.awt.* doesn't also import java.awt.geom.*? Isn't everything within java.awt.geom inside of java.awt?
没有。
要获取geom包的所有类,您必须编写java.awt.geom.*
my professor told me for this rectangle maker project thing that accessing the instance variables directly was bad and that I should use the accessor method instead.
是的,你的教授是正确的。
原因是数据封装,
- 限制对某些对象的访问的语言机制 组件。
- 一种语言结构,有助于将数据与 对该数据进行操作的方法(或其他函数)。
了解更多关于Encapsulation的信息
关于java - 导入包并使用实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19019422/