我正在学习编程,尽管我感觉自己在编程方面有丰富的知识(多年编写PHP,Javascript等),但我从未涉足OOP。因此,我想就自己所处的情况提供一个一般性的答案。我知道总是会有一些例外,但是在这种情况下,我正在寻找最正确的方法。
好的,所以我有两个课,Game和GameGraphics。GameGraphics将创建一个对象Game并使用其拥有的所有方法。我们最近了解到,一个类的所有变量都应该是私有的,因此,所有的变量Game都可以GameGraphics通过getter和setter 进行访问。
但是,当我想访问类Game内部的变量时Game,应该使用公共方法还是直接访问变量?最正确的方法是什么?
如果这很重要,我正在用Java开发。并且请原谅我缺乏OOP经验。
使用访问器方法(getter 和 setter)访问其他类的变量的两个主要原因是
可读性的轻微下降是为这些优点付出的合理代价,因为它们使您可以封装类的逻辑,从而使您的控制更加严格。
当涉及私有方法时,这些优点都不适用:它们不能实现接口方法,并且不能被重写。事实上,Java 编译器通常会完全优化它们,尤其是那些更简单的。
这就是为什么我建议直接使用实例变量,而不是添加一个额外的层,这对可读性没有帮助,但会被编译器优化。