JAVA - 初学者 - 私有类属性可以在类外部访问吗?

Ale*_*exM 3 java private-class

我对 Java OO 编程比较陌生,并且已经回顾了与此类似的问题,尽管它们似乎没有直接回答我的问题。

基本上,我知道如果类中的数据成员被声明为private,那么它只能从同一个类中访问。

我的讲师总是建议所有属性都应声明为私有 -这是为什么?

现在我熟悉使用 GET 方法,我的问题是,是否可以通过从另一个类调用 PUBLIC“get”方法(返回上述属性)来在其自己的类之外访问私有属性?

例如:

public class Class()
{

    private int number = 0;

    public Class()
    {
    }

    public int getNumber()
    {
        return number;
    }

}
Run Code Online (Sandbox Code Playgroud)

然后来自另一个班级:

public class Class2()
{

    Class class = new Class();

    public void showNumber()
    {
        System.out.print(class.getNumber());
    }
}
Run Code Online (Sandbox Code Playgroud)

第二个代码块是否允许 Class2 内的showInt()中的方法实际访问 Class 的私有属性?

我想我真的很难决定是否应该将任何属性或方法声明为公共私有

是否有任何应该遵循的特定经验法则?

感谢回复者提供的任何帮助。

亲切的问候

Pet*_*rey 5

我的讲师总是建议所有属性都应声明为私有。

好建议。这条规则也有例外,但我将从这个开始。

据我所知,如果类中的数据成员被声明为私有,那么它只能从同一个类中访问。

它可以访问

  • 同一文件中的嵌套类。
  • 通过反射访问。

第二个代码块是否允许 Class2 内的 showInt() 中的方法实际访问 Class 的私有属性?

在这种情况下实际上是的。通过使用 getter,字段可以更改名称、被常量或计算替换或被记录,而 Class2 不需要知道。