在Java中,要访问类中的变量,最好通过方法返回其值,还是通过myClass.variable访问它?

在Java中,要访问类中的变量,最好通过方法返回其值,还是通过myClass.variable访问它?,java,Java,我认为这个标题说明了一切。也许我应该问:不使用方法返回变量或其值是否有过不好的地方?一个例子是带有x和y变量的二维点类 使用myPoint.x获取myPoint的x变量与myPoint.xValue()相反,后者只返回myPoint.x,有什么不对吗?保持内部私有,并提供访问方法 外部世界不需要知道内部结构,如果您以后更改内部结构,您可以保持API不变,并在内部更改您想要的内容,因此不会产生外部影响 通过方法检索要好得多。您应该使用setter和getter对代码进行封装 这完全取决于: 如果您

我认为这个标题说明了一切。也许我应该问:不使用方法返回变量或其值是否有过不好的地方?一个例子是带有x和y变量的二维点类


使用
myPoint.x
获取
myPoint
的x变量与
myPoint.xValue()
相反,后者只返回
myPoint.x
,有什么不对吗?

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

外部世界不需要知道内部结构,如果您以后更改内部结构,您可以保持API不变,并在内部更改您想要的内容,因此不会产生外部影响


通过方法检索要好得多。

您应该使用setter和getter对代码进行封装

这完全取决于:

如果您正在创建一个符合a的
类,那么您的变量必须是使用相关getter/setters方法的
private

此外,如果您正在创建一个API,则
myPoint.x
不合适,因为您希望通过契约创建一个应用程序,即使用
Point.getX()创建一个接口。这样,使用API,开发人员知道有一个
,它从
getX()
方法返回一个
x
坐标


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

封装是java的一个特性

避免直接访问私有变量,并提供适当的访问器和变异器来更新或检索这些值


因此,请使用方法访问这些变量值并将这些变量声明为私有。

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

好的方法是遵循Java中的
封装规则

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


包容和可读性活动将决定函数形式,因此我坚持这一点。