<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:18px;">package nested_inner_class;</span></span>
<span style="font-size:18px;"> public class StaticNestedTest3 { public static void main(String[] args) { //奇特的内部类实例化方法 Outer3 outer3 = new Outer3(); Outer3.Nested nested = outer3.new Nested(); //使用以下方法无法创建,以下方法只能创建静态嵌套类 //Outer3.Nested nested = new Outer3.Nested(); System.out.println(nested.getValue()); System.out.println(nested.getOuterValue()); } } class Outer3{ private int value = 9; //非静态的嵌套类(也可称为成员内部类)(Nested1)可以访问外层类(Outer)的所有(包括private)成员 //可以把嵌套类当做外部类的一个函数来理解(为什么可以访问外部类的成员) class Nested{ int value = 10; /* * Note: * 内部类中引用当前实例(内部类的实例)用 this * 内部类中引用外层类实例用 Outer3.class,这和引用外层类的静态变量不同 * */ //返回内部类的value int getValue(){ return this.value; } //返回外部类的value int getOuterValue(){ //内部类访问外部类对象的奇特方法 return Outer3.this.value; } } }</span>
嵌套类(nested class)是一个在另一个类或接口内部声明的类。嵌套类分为两种:静态内部类(static inner class)和非静态嵌套类(non-static nested class)。非静态嵌套类也称为内部类(inner class)
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/wanghao109/article/details/46850761