——- android培训、java培训、期待与您交流! ———-
1,内部类概述
将一个类定义在另一类中,那么这个类就可以成为内部类
2,特点:
(a)内部类可以直接访问外部类的成员,包括私有成员
(b)而外部类要访问内部类中的成员必须要建立内部类的对象
3,格式:
Class Outer{
Class Inner{}
}
外部类名.内部类名 变量 = 外部类对象.内部类对象
Outer.Inner oi = new Outer().Inner()
4,局部内部类–定义在方法中的类
格式:
Class Outer{
Public void method{
Class Inner{}
注意:
(a)局部内部类访问局部变量,该变量必须被finay修饰(延长生命周期)
(b)局部变量会在方法调用完毕后,立马消失,而局部内部类如果还使用着局部变量,当方法消失后,这个方法区的内容还没有消失,也就 是说这个变量还必须存在,所以用final修饰,延长生命周期
5,匿名内部类概述
匿名内部类其实就是内部类的简写格式;其实匿名内部类就是一个匿名子类对象;没有名字的一个局部内部类。
使用前提:
内部类必须是继承一个类或者实现接口,换句话说这个内部类必须要和外部类或者接口要有关系,必须存在一个类,抽象类,或者接口。
格式:
new 类名或者接口名()
{重写类或者接口中的抽象方法}
体现
Class Outer
{
Public void method()
{
new Inter()
{
Public void show()
{
System.out.println("hao");
}
};
}
}
优劣
(a)简化书写,覆盖父类的方法
(b)不可以直接调用匿名内部类自己的方法
(c)当父类的方法过多的话,那么不建议使用匿名内部类,阅读性差;匿名内部类里面的方法通常情况下不超过3个