——— android培训、java培训、期待与您交流! ———
内部类
内部类就是定义在类中的类。
内部类是外部类的一个成员,可以直接引用外部类的其它成员。
定义方式如下:
class OuterClass
{
...
private Object outerfield;
public void outerMethod() {}
class InnerClass
{
private Object innerfield;
public void innerMethod()
{
outerfield = ***;
outerMehthod();
}
...
}
}
引用内部类:
new OuterClass().new InnerClass();
//静态内部类
new OuterClass().InnerClass();
局部内部类
还有一种定义在方法内的内部类,即局部内部类。局部内部类相当于方法内定义的变量,不能用成员修饰符修饰。
- 局部内部类可以访问外部类的不同名变量,同名变量则取内部类的变量
- 局部内部类只能访问定义成final的局部变量
- 局部类内this指向自身
class OuterClass
{
...
private Object outerfield;
public void method() {}
{
class InnerClass
{
private Object innerfield;
public void innerMethod()
{
outerfield = ***;
outerMehthod();
}
...
}
...
}
}
匿名内部类
匿名内部类没有名字,所以是一次性的。在对接口的一次性实现时非常方便。
匿名内部类在线程等应用中十分广泛。例如:
Thread t = new Thread(new Runnable() {
@override
public static void()
{
...
}
});