//1.成员内部类 class Outer{ private int num=4;//对内部类而言,这是外部内的成员,尽管是private,一样可以访问 public void test(){ Inner inner=new Inner();//这里是外部类调用内部类:内部内也可以被外部内以创建对象方式使用,但要注意的是,内部如如果是private,就不可访问了 inner.show(); } class Inner{ //内部类:在一个类的内部定义类,类名为Inner void show(){ System.out.println("num="+num); //这里是内部类访问了外部类的成员 } } } /*public class Example10{ public static void main (String[] args){ Outer outer=new Outer();//最后的打印结果是:此处调用了外部内Outer、Outer又给内部类创建了Inner对象,使用了Inner的show方法打印而出 outer.test(); } } */ //下边的在外部访问内部类,和Example10的结果是一样的,不同的是上面是通过访问test调用内部类,这里是直接访问内部类 class Example11{ public static void main(String[] args){ Outer.Inner inner =new Outer().new Inner();//这是通过外部访问一个外部内中的内部内的方式:外部内.内部类名 变量名= new外部内名.new内部类名 //注意:如上有两个new,第一个new是为外部类Outer创建了对象,第二个new是为内部类Inner创建了对象 inner.show();//调用内部类中的show方法 } }
原文:https://www.cnblogs.com/s-sj/p/14332906.html