Java 如何使用getter函数访问另一个类中的私有变量?

Java 如何使用getter函数访问另一个类中的私有变量?,java,getter-setter,Java,Getter Setter,头等舱(父级) 另一个类(子类) 如何使用getter函数访问另一个类中的私有变量? 我如何在child类中更改它?您可以在child类中使用这样的方法 public void changeExThis() { y = 20; System.out.println("x = " + UnprivateX()); System.out.println("y = " + y); } 你也可以使用 this.UnprivateX()或super.UnprivateX()首先,

头等舱(父级)

另一个类(子类)

如何使用getter函数访问另一个类中的私有变量?
我如何在child类中更改它?

您可以在child类中使用这样的方法

public void changeExThis() {
    y = 20;
    System.out.println("x = " + UnprivateX());
    System.out.println("y = " + y);
}
你也可以使用
this.UnprivateX()
super.UnprivateX()

首先,您应该将类的所有字段声明为private,然后为每个字段创建getter和setter,它们的名称必须以getFieldName和setFieldName开头。并且应该是公共的。

您不应该有MyClass的实例。您的实例:“inst”访问了MyClassI的方法,我不确定我是否遵循了这些方法。UnprivateX方法允许您访问x。顺便说一下,标准名称是getX。您不需要MyClass的实例,因为MySecondClass继承MyClass。你可以简单地调用UnprivateX来获取X的值。如果你想从
MyClass
之外更改
X
的值,你需要在
MyClass
中添加一个
public
方法,以提供该功能。是的,我注意到了!谢谢大家@KevinAnderson!您可以用一些示例代码来帮助OP,而不只是编写解决方案。为什么所有字段都是私有的?我可以只声明一个是私有的,另一个是公有的吗?这是怎么回事?当然你可以将一些字段声明为公有的,但这样做是非常不好的做法。如果您想在将来编写一个清晰的代码,您应该遵循简单的封装规则——将所有字段保持私有。
package revisionOOP;
public class MySecondClass extends Myclass {
    static int y;
    public void changeExThis() {
        y = 20;
        System.out.println("x = " + inst.UnprivateX());
        //I want to get the private x value from Myclass class  ,How ?
        System.out.println("y = " + y);
    }
    public static void main(String[] args) {
        MySecondClass inst = new MySecondClass();
        Myclass inst2 = new Myclass();
        inst2.changeThis();
        inst.changeThis();
        inst.changeExThis();
    }
}
public void changeExThis() {
    y = 20;
    System.out.println("x = " + UnprivateX());
    System.out.println("y = " + y);
}