从外部类访问内部类私有变量
如果该字段为static
,即使它是private
,您也可以从外部类访问它。如果内部类字段不为static
public class Clazz {
class Inner {
private static final int N = 10;
}
public static void main(String[] args) {
System.out.println(Inner.N);
}
}
,它不没有内部类的实例存在:你不需要任何内部或外部类的一个实例。你不能访问不存在的东西。
[代码]的System.out.println( “计算机详细信息” + this.serial_number +”“+新Video_Card(SERIAL_NUMBER * 100))[/代码] 我已经尝试过这一点,但由于某种原因,它的打印out of the following: computer400的详细信息[email protected] computer400的详细信息[email protected] –
简短的回答是否定的。
较长的答案如下。内部类只是一个普通类,其外部类的实例有“神奇”参考,可通过OuterClass.this
访问。外部类的实例的创建不会自动创建内部类的实例。这意味着,除非内部类本身及其成员为static
,否则您无法通过定义从外部类访问内部类的成员,而无需创建内部类的实例。
事实上,您可以创建一个外部类的实例和10个相应内部类的实例。如何在不创建实例的情况下访问内部类的成员?
顺便说一句建议:避免创建内部类,除非你真的需要它们。
请您详细说明“避免创建内心的课堂,除非你真的需要他们“? – Lokesh
如果它是一个实例变量,那么你需要...一个实例。 – assylias