Java中的private修饰符失效了?
在Java编程中,使用private关键字修饰了某个成员,只有这个成员所在的类和这个类的方法可以使用,其他的类都无法访问到这个private成员。
上面描述了private修饰符的基本职能,今天来研究一下private功能失效的情况。
Java内部类
在Java中相信很多人都用过内部类,Java允许在一个类里面定义另一个类,类里面的类就是内部类,也叫做嵌套类。一个简单的内部类实现可以如下
classOuterClass{ classInnerClass{ } }
今天的问题和Java内部类相关,只涉及到部分和本文研究相关的内部类知识,具体关于Java内部类后续的文章会介绍。
第一次失效?
一个我们在编程中经常用到的场景,就是在一个内部类里面访问外部类的private成员变量或者方法,这是可以的。如下面的代码实现。
publicclassOuterClass{ privateStringlanguage="en"; privateStringregion="US";
publicclassInnerClass{ publicvoidprintOuterClassPrivateFields(){ Stringfields="language="+language+";region="+region; System.out.println(fields); } }
publicstaticvoidmain(String[]args){ OuterClassouter=newOuterClass(); OuterClass.InnerClassinner=outer.newInnerClass(); inner.printOuterClassPrivateFields(); } }