【问题标题】:To access a variable in a class in Java, is it better to return its value via a method, or just acces it via myClass.variable?要访问 Java 类中的变量,是通过方法返回它的值,还是通过 myClass.variable 访问它?
【发布时间】:2013-04-18 07:41:54
【问题描述】:

我认为标题说明了一切。也许我应该问:不使用方法来返回变量或它的值是不是很糟糕?一个示例是具有 x 和 y 变量的二维点类。

使用myPoint.x 获取myPoint 的x 变量而不是myPoint.xValue() 有什么问题吗?mypoint.x 只是返回mypoint.x

【问题讨论】:

  • 包含和可读性将决定功能形式,所以我会坚持下去。

标签: java


【解决方案1】:

保持内部隐私,并提供访问方法。

外部世界不需要知道内部,如果你以后改变内部,你可以保持API不变,内部改变你想要的,所以没有外部影响。

通过方法检索要好得多。

【讨论】:

    【解决方案2】:

    你应该让你的代码,封装,使用setter和getter。

    Set and Get Methods in java?

    【讨论】:

      【解决方案3】:

      这完全取决于:

      如果您要创建一个符合JavaBeans SpecificationPoint 类,那么您的变量必须是private 并带有相关的getter/setters 方法。

      另外,如果您正在创建 API,那么 myPoint.x 不合适,因为您希望按合同创建应用程序,即与 Point.getX() 的接口。这样一来,使用 API,开发人员就知道有一个 PointgetX() 方法返回一个 x 坐标。

      最终取决于您的设计。我更喜欢保留 encapsulate 我的变量以限制对我的内部结构(例如变量)的访问。

      【讨论】:

        【解决方案4】:

        封装是java的特性之一。

        通过将变量设为私有并提供适当的访问器和修改器来更新或检索这些值来避免直接访问变量。

        所以使用方法来访问这些变量值并将这些变量声明为私有。

        【讨论】:

          【解决方案5】:

          使用 getter 访问更安全。许多程序员使用 private 关键字来保护他们的类变量。我建议使用 getter 和 setter 公共方法。

          【讨论】:

            【解决方案6】:

            好的方法是遵循 Java 中的encapsulation 规则。

            提供私有变量和公共 setter 和 getter。

            for reference link

            【讨论】:

              猜你喜欢
              • 2016-05-28
              • 2011-07-14
              • 1970-01-01
              • 1970-01-01
              • 2023-03-21
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多