内部类、成员内部类、匿名内部类的定义以及在开发中的使用
内部类的定义
- 内部类的访问特点
1.内部类可以直接访问外部类的成员,包括私有成员
2.外部类要访问内部类成员必须创建对象
//内部类的创建格式
Public class Outer{
Public class Inner{
}
}
成员内部类
格式:外部类名.内部类名 对象名=外部类对象.内部类对象;
//例:
Outer.Inner oi=new Outer().new Inner();
注意:该创建方法仅限访问public内部类
局部内部类
局部内部类是在方法中定义的类,所以外界无法直接使用,需要在方法内部创建对象并使用
该类可以直接访问外部类成员,也可以访问方法内的局部变量
匿名内部类
前提:定义匿名内部类的前提是存在一个类或者接口,这里的类可以是具体类也可以是抽象类
格式:new 类名或者接口名(){ 重写方法;};
例:
new Inter(){
Public void show(){
}
}
//前提是Inter是接口或抽象类
public interface Inter{
void show();
}
定义出的匿名内部类直接就是对象 可以使用: 匿名内部类名.方法调用
例:
public class Outer{
public int num=10;
public void method(){
Inter i=new Inter(){
//定义接口来接收匿名内部类中的内容
@Override
public void show(){
System.out.println(num);
}
};
i.show(); //用接口间接调用匿名内部类中的内容
}
}
//前提是Inter是接口或抽象类
public interface Inter{
void show();
}