Java嵌套类和内部类详解
一、什么是嵌套类及内部类?
可以在一个类的内部定义另一个类,这种类称为嵌套类(nestedclasses),它有两种类型:
静态嵌套类和非静态嵌套类。静态嵌套类使用很少,最重要的是非静态嵌套类,也即是被称作为
内部类(inner)。嵌套类从JDK1.1开始引入。其中inner类又可分为三种:
其一、在一个类(外部类)中直接定义的内部类;
其二、在一个方法(外部类的方法)中定义的内部类;
其三、匿名内部类。
下面,我将说明这几种嵌套类的使用及注意事项。
二、静态嵌套类
如下所示代码为定义一个静态嵌套类,
publicclassStaticTest{ privatestaticStringname="javaJohn"; privateStringid="X001";
staticclassPerson{ privateStringaddress="swjtu,chenDu,China"; publicStringmail="josserchai@yahoo.com";//内部类公有成员 publicvoiddisplay(){ //System.out.println(id);//不能直接访问外部类的非静态成员 System.out.println(name);//只能直接访问外部类的静态成员 System.out.println("Inner"+address);//访问本内部类成员。 } }
publicvoidprintInfo(){ Personperson=newPerson(); person.display();
//System.out.println(mail);//不可访问 //System.out.println(address);//不可访问
System.out.println(person.address);//可以访问内部类的私有成员 System.out.println(person.mail);//可以访问内部类的公有成员
} publicstaticvoidmain(String[]args){ StaticTeststaticTest=newStaticTest(); staticTest.printInfo(); } }