Java 如何使用getter函数访问另一个类中的私有变量?
头等舱(父级) 另一个类(子类) 如何使用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()首先,
我如何在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);
}