内部类就是类中类
在描述事物时,若一个事物内部还包含其他可能包含的事物,比如在描述汽车时,汽车中还包含这发动机,这时发动机就可以使用内部类来描述。
public class Outer{
public class Inner{
public void in(){}
}
}
内部类的调用公式: Outer.Inner inner = new Outer().new Inner(); //外部类名.内部类名 变量名称 = new 外部类对象().new 内部类对象();
inner.in(); //变量名称.内部类方法名();
成员内部类同名变量调用 变量在内部类方法中,直接就可以调用
变量在内部类中,this.变量名;
变量在外部类中,外部类名.this.变量名;
局部内部类 在方法中创建对象调用方法。
public class Outer{ //外部类
public void Out(){ //外部方法
public class Inner{ //内部类
public void in(){} //内部方法
}
Inner inner = new Inner;
inner.in();
}
}
调用方法:
Outer out = new Outer();
out.Out();
匿名内部类
定义的匿名内部类有两个含义:1、临时定义某一指定类型的子类。2、定义后即刻创建刚刚定义的这个子类的对象
匿名内部类的作用和格式
格式:
new 父类或接口(){
//进行方法重写
}.方法名;
这样的缺点就是一次只能调用一个方法,以下代码可以改进。
父类类名 变量名 = new 父类或接口(){
//进行方法重写
};
变量名.方法名(); //方法调用
变量名.方法名();