有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (4) 个答案

  1. # 1 楼答案

    OOP的核心概念是封装。getter和setter方法(例如getguiWait()方法)的使用使得任何人都无法访问对象的内部字段。这样,其他人就无法将内部字段设置为不一致/异常的值。通过使用“getter”和“setter”方法(并使用private隐藏内部字段),您可以确保任何愿意设置或获取字段的人都必须通过您设置的检查。示例类Cat可以将年龄作为其字段。在setter方法中,您将检查用户输入值是否为负值。如果允许“年龄”字段为公共字段,可能会有人将其设置为负值,这毫无意义

  2. # 3 楼答案

    区别在于能见度。当像第一个示例一样使用guiWaitpublic时,外部调用方可以修改该值。如果使用方法并使变量private,则调用者无法修改guiWait变量(尽管如果它是可变的,他们可以修改它引用的对象)。此外,如果您养成了使用getter和setter的习惯,那么稍后如果您需要向获取或设置过程添加逻辑(例如,您需要从其他一些新字段派生值),那么您已经有了这些方法,并且不会通过生成变量private来破坏任何调用方的代码。因此,在Java中始终使用getter和setter被认为是“最佳实践”

  3. # 4 楼答案

    如果guiWait是一个公共布尔值,那么为它使用“getter”方法是没有意义的。如果是私人的或受保护的,那就不同了。私有getter方法更灵活,因为您可以更改该变量“get”的实现,并在方法中添加检查或其他内容。私有getter/setter还可以让事情变得更清楚,并确定哪些内容应该被其他类看到,哪些内容只应该在它们所属的单个类中使用。如果您发现确实需要一个特定成员变量的getter(需要某种验证或检查),这是非常常见的,那么仅为该变量执行getter是不一致的