使用private
访问修饰符,以便我们只能在类中使用相应的成员。但是使用内部类,我们可以定义一个方法来访问外部类的 private
成员。这是相关代码:
import java.util.*;
import java.lang.*;
import java.io.*;
class Outer {
private int x = 1;
Inner getInner() {
Inner inner = new Inner();
return inner;
}
class Inner {
int getX() {
return x;
}
}
}
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
Outer outer = new Outer();
Outer.Inner inner = outer.getInner();
System.out.println("Private x: "+inner.getX());
}
}
这不是违背了封装的概念吗?
最佳答案
The private access modifier is used so that we can use the respective member only within the class.
因为内部类是类的一部分,这仍然成立。对私有(private)数据的访问被限制在内部,因此保留了封装。 此外,由于您能够修改类的源文件,这意味着您无论如何都可以访问其所有内部结构。
关于java - 内部类是否使封装的概念无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52097509/