内部类的使用
内部类的分类:
成员内部类 (直接声明在类的内部,与属性,方法并列) vs 局部内部类(方法内,代码块内)
成员内部类:>>>静态的成员内部类 vs 非静态的成员内部类
内部类的了解:
一方面>>>,作为外部类的成员使用
>可以使用4中权限符修饰
>可以使用static修饰
>可以调用外部类的结构:属性,方法
另一方面>>>,作为类的角色
>内部类可以声明属性,方法,构造器,代码块
>可以被fianl修饰,不能继承
>可以被abstract修饰,不能实例化
创建成员内部类的对象
calss Person{
String name:
int age:
public Person()()
public Person(String name)(
this.name=name;
)
public void eat(){
System.out.println("人吃饭");
}
//静态成员内部类 static class Dog{
public void shout(){
System.out.println("汪汪");
} } //非静态内部成员类 class Bird{
public void sing(){
System.out.println("歌唱");
} public void info(){
System.out.println(name);
eat();
} } public void method(){ //局部内部类 class A{ } } } calss Test{ public static void main(String[] args){ //1.创建静态的成员内部类对象 Person.Dog dog =new Person.Dog(); dog.shout(); //创建非静态的成员内部类 Person.Birld bird =new Person.Birld();//错误演示
//2.创建非静态成员内部类的对象 Person p1 =new Person Person.Birld b1=p1.new Bird();
b1.sing(); } }