Java 如何访问类外的私有数据成员?
我正在尝试访问外部类之外的内部类的私有数据成员Java 如何访问类外的私有数据成员?,java,Java,我正在尝试访问外部类之外的内部类的私有数据成员 请帮帮我?你不需要——这就是保密的全部意义 内部类可以通过属性公开数据,当然: public class Outer { public class Inner { private final String name; public Inner(String name) { this.name = name; } public String getNa
请帮帮我?你不需要——这就是保密的全部意义 内部类可以通过属性公开数据,当然:
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
}
}
。。。但是,如果内部类想要保持它的私有性,那么您就不应该尝试访问它。您不应该这样做-这就是它私有的全部意义 内部类可以通过属性公开数据,当然:
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
}
}
。。。但是,如果内部类想要保持它的私有性,那么您就不应该尝试访问它。您不应该这样做-这就是它私有的全部意义 内部类可以通过属性公开数据,当然:
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
}
}
。。。但是,如果内部类想要保持它的私有性,那么您就不应该尝试访问它。您不应该这样做-这就是它私有的全部意义 内部类可以通过属性公开数据,当然:
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
}
}
。。。但是,如果内部类希望保持私有,则不应该尝试访问它。在内部类中为私有变量创建公共getter setter方法。然后创建一个对象并调用它们来访问私有数据。不能直接访问私有数据。在内部类中为私有变量创建公共getter setter方法。然后创建一个对象并调用它们来访问私有数据。不能直接访问私有数据。在内部类中为私有变量创建公共getter setter方法。然后创建一个对象并调用它们来访问私有数据。不能直接访问私有数据。在内部类中为私有变量创建公共getter setter方法。然后创建一个对象并调用它们来访问私有数据。您不能直接访问私有数据。您不能访问私有数据。如果您有其他访问它的想法,请使用public getter方法返回该私有数据。您无法访问私有数据。如果您有其他访问它的想法,请使用public getter方法返回该私有数据。您无法访问私有数据。如果您有其他访问它的想法,请使用public getter方法返回该私有数据。您无法访问私有数据。如果您有其他访问它的想法,请使用公共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());
}
}
您可以使用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());
}
}
您可以使用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());
}
}
您可以使用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());
}
}
这样设计有什么好处吗?我的意思是,如果类是
私有的
,为什么他们允许在类之外访问它(即使它是一个内部类)…Java是一种完全面向对象的编程语言。数据隐藏换句话说,封装是OOP的一个主要特性。最佳做法是将所有类属性设置为私有,并将所有方法公开,包括访问这些私有属性的getter setter方法。@Nadun:不清楚您答复的是什么,但您并不仅仅将所有方法公开。。。Maroun的评论(我相信)是对我对他现在已删除的答案所做的评论的回应,大意是内部类的私有成员可以访问其封闭类。我只是向@Maroun的问题解释。@Nadun:很遗憾,我认为你错过了问题的上下文。但是,我认为建议人们公开所有的方法不是一个好主意。这样设计有什么好处吗?我的意思是,如果类是私有的
,为什么他们允许在类之外访问它(即使它是一个内部类)…Java是一种完全面向对象的编程语言。数据隐藏换句话说,封装是OOP的一个主要特性。最佳做法是将所有类属性设置为私有,并将所有方法公开,包括访问这些私有属性的getter setter方法。@Nadun:不清楚您答复的是什么,但您并不仅仅将所有方法公开。。。Maroun的评论(我相信)是对我对他现在已删除的答案所做的评论的回应,大意是内部类的私有成员可以访问其封闭类。我只是向@Maroun的问题解释。@Nadun:很遗憾,我认为你错过了问题的上下文。但是,我认为建议人们公开所有的方法不是一个好主意。这样设计有什么好处吗?我的意思是,如果类是私有的
,为什么他们允许在类之外访问它(即使它是一个内部类)…Java是一种完全面向对象的编程语言。数据隐藏换句话说,封装是OOP的一个主要特性。最佳做法是将所有类属性设置为私有,并将所有方法公开,包括访问这些私有属性的getter setter方法。@Nadun:不清楚您答复的是什么,但您并不仅仅将所有方法公开。。。Maroun的评论(我相信)是对我对他现在已删除的答案所做的评论的回应,大意是内部类的私有成员可以访问其封闭类。我只是向@Maroun的问题解释。@Nadun:很遗憾,我认为你错过了问题的上下文。但是,我认为建议人们公开所有的方法不是一个好主意。这样设计有什么好处吗?我的意思是,如果类是私有的
,为什么他们允许在类之外访问它(即使它是一个内部类)…Java是一种完全面向对象的编程语言。数据隐藏换句话说,封装是OOP的一个主要特性。最佳做法是将所有类属性设置为私有,并将所有方法公开,包括访问这些私有属性的getter setter方法。@Nadun:不清楚您答复的是什么,但您并不仅仅将所有方法公开。。。马龙的评论是(我)