gpt4 book ai didi

java - 使用public getters/setters访问同一个类中的私有(private)变量,或者直接访问变量

转载 作者:搜寻专家 更新时间:2023-10-31 20:29:21 24 4
gpt4 key购买 nike

我正在学习编程,虽然我觉得我在编程方面有很好的知识(多年来一直在编写 PHP、Javascript 等),但我从未深入过 OOP 的世界。因此,我要求针对我所处的情况提供一般性答案。我知道总会有一些异常(exception),但我正在寻找这种情况下最正确的方法。

好的,所以我有两个类,GameGameGraphicsGameGraphics 将创建一个 Game 对象并使用它拥有的所有方法。我们最近了解到,一个类的所有变量都应该是私有(private)的,因此 Game 中的所有变量都由 GameGraphics 通过 getter 和 setter 访问。

但是,当我想在 Game 类中访问 Game 的变量时,我应该使用公共(public)方法,还是直接访问变量?对此最正确的方法是什么?

如果重要的话,我正在用 Java 进行开发。请原谅我缺乏 OOP 经验。

最佳答案

我建议您始终使用访问器方法。你的程序以后会更容易调试。

让我举一个相当常见的场景。假设您注意到属性如何意外更新,并且您想知道代码中属性可能更新的位置:

  • 如果您一直使用 setter 来更新值。您只需在整个项目中搜索该字段的 setter 方法一次就可以了。您的代码中可能没有其他地方会更新值。甚至不在类本身内部(记住:除了访问器之外没有直接的字段访问)。

  • 如果您同时使用 setter 方法和直接字段访问来更新值,您将不得不搜索您的项目两次。首先,通过setter方法。其次,按领域。请注意,第二个列出的所有结果都可能是混淆的(该属性可能在搜索结果中,因为它正在被访问或被更新) .

此外,如果您想在更新或访问某个属性时进行一些调试并检查某些值,您可以将断点放在它的 setter 或 getter 方法中。简单的。您不需要将断点放在其他地方。

关于java - 使用public getters/setters访问同一个类中的私有(private)变量,或者直接访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14801428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com