【发布时间】:2014-04-03 06:02:47
【问题描述】:
我正在尝试在外部类之外访问内部类的私有数据成员。
请帮帮我?
【问题讨论】:
标签: java
我正在尝试在外部类之外访问内部类的私有数据成员。
请帮帮我?
【问题讨论】:
标签: java
你不知道 - 这就是隐私的全部意义。
当然,内部类可以通过属性公开数据:
public class Outer {
public class Inner {
private final String name;
public Inner(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
}
public class Other {
public void foo() {
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner("Foo");
// Can't access inner.name here...
System.out.println(inner.getName()); // But can call getName
}
}
...但是如果内部类想要保持私有,那么您不应该尝试访问它。
【讨论】:
private,为什么他们允许在它之外访问它(即使它是一个 inner 类)..
在内部类中为私有变量创建公共 getter setter 方法。然后创建一个对象并调用它们来访问私有数据。您不能直接访问私人数据。
【讨论】:
您无法访问私人数据。如果您有其他访问它的想法,请使用返回该私有数据的公共 getter 方法。
【讨论】:
您可以使用 getter 方法 ex 访问私有数据成员
package pack;
import java.io.ObjectInputStream.GetField;
public class abc {
private int num = 2;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}
class otherClass {
public static void main(String[] args) {
abc obj = new abc();
System.out.println(obj.getNum());
}
}
【讨论】: