如何在外部类中定义内部类?
如下所示代码为在外部类中定义两个内部类及它们的调用关系: public class Outer{ int outer_x = 100; class Inner{ public int y = 10; private int z = 9; int m = 5; public void display(){ System。 out。println("display outer_x:"+ outer_x); } private void display2(){ System。out。println("display outer_x:"+ outer_x); } ...全部
如下所示代码为在外部类中定义两个内部类及它们的调用关系: public class Outer{ int outer_x = 100; class Inner{ public int y = 10; private int z = 9; int m = 5; public void display(){ System。
out。println("display outer_x:"+ outer_x); } private void display2(){ System。out。println("display outer_x:"+ outer_x); } } void test(){ Inner inner = new Inner(); inner。
display(); inner。display2(); //System。out。println("Inner y:" + y);//不能访问内部内变量 System。out。println("Inner y:" + inner。
y);//可以访问 System。out。println("Inner z:" + inner。z);//可以访问 System。out。println("Inner m:" + inner。
m);//可以访问 InnerTwo innerTwo = new InnerTwo(); innerTwo。show(); } class InnerTwo{ Inner innerx = new Inner(); public void show(){ //System。
out。println(y);//不可访问Innter的y成员 //System。out。println(Inner。y);//不可直接访问Inner的任何成员和方法 innerx。display();//可以访问 innerx。
display2();//可以访问 System。out。println(innerx。y);//可以访问 System。out。println(innerx。z);//可以访问 System。
out。println(innerx。m);//可以访问 } } public static void main(String args[]){ Outer outer = new Outer(); outer。
test(); } } 以上代码需要说明有,对于内部类,通常在定义类的class关键字前不加public 或 private等限制符,若加了没有任何影响,同时好像这些限定符对内部类的变量和方法也没有影响(?)。
另外,就是要注意,内部类Inner及InnterTwo只在类Outer的作用域内是可知的,如果类Outer外的任何代码尝试初始化类Inner或使用它,编译就不会通过。同时,内部类的变量成员只在内部内内部可见,若外部类或同层次的内部类需要访问,需采用示例程序中的方法,不可直接访问内部类的变量。
希望我的回答可以帮到你。收起