class Outer
{
private int x = 3;
class Inner//内部类
{
//int x = 4;
void function()
{
//int x = 6;
System.out.println("innner :"+Outer.this.x);
}
}
/*外部类要访问内部类,必须建立内部类对象。*/
void method()
{
Inner in = new Inner();
in.function();
}
}
class InnerClassDemo
{
public static void main(String[] args)
{
Outer.Inner in = new Outer().new Inner(); //创建内部类的对象
in.function();
}
} 作者: 于潇 时间: 2012-5-4 09:31
定义在一个类内部的类叫内部类,内部类可以根据使用和情况分为4种,分别是成员内部类,局部内部类,静态内部类,匿名内部类。
成员内部类,是一个可以看成是外部类的非静态成员的内部类。成员内部类与普通的成员没什么区别,可以与普通成员一样进行修饰和限制。
在外部类的内部(非静态的)创建一个内部类的对象可以直接使用Inner i=new Inner();
在外部类的外部创建一个内部类的对象,需要首先建立一个外部类对象,然后再生成一个内部类对象。这是因为内部类相当于外部类的成员,而成员只有在所属对象存在的情况下才存在。内部类的类名是外部类类名.内部类类名,创建内部类对象有两种语法,如下:
<外部类类名>.<内部类类名> 引用变量=<外部类对象引用>.new 内部类构造器
<外部类类名>.<内部类类名>引用变量=new <外部类构造器>.new 内部类构造器