java-内部类会使封装的概念无效吗?
作者:互联网
使用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.
由于内部类是该类的一部分,因此仍然适用.对私有数据的访问限于其中,因此保留了封装.
此外,由于您能够修改该类的源文件,因此,您无论如何都可以访问其所有内部信息.
标签:oop,encapsulation,java 来源: https://codeday.me/bug/20191025/1925120.html