JAVA基础之路——内部类

内部类

内部类分为四种

一、嵌套内部类。
顾名思义,嵌套在类中的类就时内部类

class A {
    class B{}
}

嵌套内部类的特性:
1.嵌套内部类可以使用所有的四种访问修饰符,
2.外部类只能是public的和dauflt(包访问权限)
3.嵌套内部类可以访问外部类中的数据成员和方法(static的也可以)
4. 嵌套内部类访问外部类中的内容时,都可以加上“外部类名.this.”, 也可以不加
5. 外部类访问内部类时,可以加上”外部类名.内部类名”,也可以不加

二、静态内部类
静态内部类就是套在类中的static类

class A{
    static class B{}
}

静态内部类的特性
1. 当只是想将一个类藏起来,而不需要它访问外部类的内容时,就可以使用静态嵌套类。
2. 静态内部类不能引用外部类中的内容。这与其余几个嵌套类都不一样。
3. 静态内部类可以有静态方法和静态域。这与其余几个嵌套类都不一样。

三、局部内部类
局部内部类就是套在方法中的类

void f{
    class A{}
}

局部内部类的特性
1. 局部内部类与嵌套内部类不同,局部内部类的前面不能使用4种访问修饰符;
2. 局部内部类对外部类是不可见的,即外部类不能访问局部内部类。这与嵌套内部类也不一样。
3. 局部内部类可以访问外部类中的数据成员和方法(static的也可以)。这与嵌套内部类一样。
4. 局部内部类还可以访问包含其方法的局部变量,但是这些局部变量实际上是final的。
5. 局部内部类可以访问包含它的方法的参数,但是它们在Java8之前都必须加上final,但是在Java8中,final是可以省略的

三、匿名内部类
就是没有名字的类(开发常用)

new Comoarator(){

}

匿名内部类的特性
1. 匿名内部类没有构造器
什么时候使用匿名内部类?
答:当一个对象只使用一次,且这个对象又需要实现某个\某几个接口时,都可以使用匿名内部类

最后:
接口中也可以嵌套类,但是接口中的类默认时public static的

以上所学为个人总结。难免不严谨,见谅!

猜你喜欢

转载自blog.csdn.net/weixin_42825755/article/details/81635183