gpt4 book ai didi

java - 什么时候应该使用公共(public)变量?

转载 作者:行者123 更新时间:2023-12-02 11:59:48 24 4
gpt4 key购买 nike

使用 ScanResult 的 Android 开发者页面,https://developer.android.com/reference/android/net/wifi/ScanResult.html ,我注意到它们有公共(public)变量 BSSID、SSID、功能等。我认为这很奇怪,因为在公共(public)变量上使用 getter/setter 是 java 规范。为什么有时使用公共(public)变量而不是 getter/setter 是否有一个广泛的、基于规则的原因?

最佳答案

在您提到的这个示例中,它们实际上是公共(public)变量,这是不好的做法。奇怪他们为什么要公开它们。这打破了封装——隐藏数据的原则,以便能够精确控制谁以及何时设置数据。

但是如果您认为,将成员设置为私有(private)并只允许愚蠢的 getter 和 setter 有什么意义呢?与直接设置它们相同。

答案是这样的:1. 如果您将字段公开,则无法更改类的 API,并且如果您稍后决定要在 getter 或 setter 中添加一些日志记录或安全约束,您将无法创建这些字段私有(private)且不破坏人们的代码。2. getter 和 setter 允许在子类中重写。以及许多其他优点。

所以总而言之 - 将这些字段公开是愚蠢的。没想到谷歌工程师会这么说。他们还让类扩展了 Object(这是 java 中的默认情况)

关于java - 什么时候应该使用公共(public)变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47356555/

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