package cn.zhao.base; /** * 内部类演示 * */ public class InnerClass { public static void main( String[] args ) { //演示外部实例内部类的方法 Outer out = new Outer() ; //外部类实例 //实例化内部类 Outer.Inner in = out.new Inner() ; in.print() ; System.out.println() ; } } class Outer { private String name = "hello" ; class Inner { public void print() { //内部类可以直接访问外部类的成员变量,虽然是private 也一样可以访问 System.out.println( "name= " + name ) ; } } public void fun() { new Inner().print() ; } } package cn.zhao.base; /** * 内部类演示 * */ public class InnerClass2 { public static void main( String[] args ) { Outer.Inner in = new Outer.Inner() ; in.print() ; } } class Outer { private static String name = "hello" ; //一个内部类,如果用static 声明,则可以把他当作外部类来用 //也就是说可以用Outer.Inter的型式来访问,不必非得有Outer的实例 static class Inner { public void print() { //内部类可以直接访问外部类的成员变量,虽然是private 也一样可以访问 System.out.println( "name= " + name ) ; } } public void fun() { new Inner().print() ; } } package cn.zhao.base; /** * 内部类演示 * */ public class InnerClass3 { public static void main( String[] args ) { new Outer().fun( "wogan" ) ; } } class Outer { private static String name = "hello" ; public void fun( final String args ) { //方法中的内部类,如果类中要访问方法的参数 ,则参数必须用final声明 class Inner { public void print() { System.out.println( "name= " + name ) ; System.out.println( "args=" + args ) ; } } new Inner().print() ; } }