java韩顺平学习笔记4(内部类)
内部类(重要)
类的五大成员:属性,方法,构造器,代码块,内部类
局部内部类
public class Outer { //外部类
String name = "";
public void f1(){
private int a = 0;
class Inner{//局部内部类
private int innerb= 0 ;
public void f2(){
System.out.println("局部内部类方法调用");
}
}
}
}
匿名内部类(重要)
可以创建对象,接受创建的匿名内部类
接口 对象名 = new 接口(){
匿名内部类的成员
};
- 区别俩面两种代码
匿名内部类(“AAA”参数,会传入Father的构造器)
Father father = new Father("AAA"){
//运行类型是运行内部类
};
正常对象创建
Father father = new Father("AAA"); //
匿名内部类使用细节
只使用一次,修改不会使其他对象也一起更改
成员内部类
- 外部其他类访问成员内部类的成员2种方式
- 外部类.成员内部类 对象名=外部类对象.new 成员内部类();
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
public class Outer { //外部类
public static void main(String[] args) {
Outer outer = new Outer();
Outer.Inner inner = outer.getInner();
}
class Inner{ //成员内部类
public Inner() {
}
}
public Inner getInner(){ //返回Inner对象的方法
return new Inner();
}
}
静态成员内部类
static class Inner{
}
- 静态类也只能访问静态成员和方法
外部其他类访问----->>静态内部类
外部类.成员内部类 对象名=外部类.new 外部类.静态内部类(); (区别与成员内部类)
Outer.Inner2 inner2 = new Outer.Inner2();