首页 > 代码库 > 内部类和匿名内部类

内部类和匿名内部类

什么是内部类?

在一个类的内部再定义一个类

class A{	int i;	class B{	//B是A的内部类		int j;		int funB(){			//int result = A.this.i + this.j; 等同于			int result = i + j;			return result;		}	}}

对a.java进行编译后,除了生成A.class外还有个A美元符B.class(内部类所生成的类文件。外部类 美元符 内部类.class),在B当中可以任意使用(并非拥有)A的成员变量和成员函数,B并非继承了A

class Test{	public static void main(String args[]){		A a = new A();		//生成内部类对象		A.B b = a.new B();		a.i = 2;		b.j = 4;		int result = b.funB();		System.out.println(result);	}}

生成内部类对象时首先要有外部类:

A a = new A();
A.B b = a.new B();

 

内部类和匿名内部类