内部类的分类:
成员内部类 (直接声明在类的内部,与属性,方法并列) 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();
}
}
原文:https://www.cnblogs.com/ylblikestudyJava/p/12368567.html