java 内部类

Posted 一场屠夫的战争

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 内部类相关的知识,希望对你有一定的参考价值。

1.成员内部类:应用率低:
(1)类中套类,外面的称为Outer外部类,里面的称为Inner内部类
(2)内部类通常只服务于外部类,对外不具备可见性。
(3)内部类对象通常是在外部类中创建。
(4)内部类中可以直接访问外部类成员(包括私有的)
内部类中有个隐私的引用指向了创建它的外部类对象
eg:外部类名.this

2.匿名内部类:
(1)若想创建一个类(派生类)的对象,并且对象只被创建一次,此时该类不必命名,称为匿名内部类。
(2)匿名内部类若想访问外部的变量,该变量必须是final的
--------在JDK1.8之前有这样的要求。

package demo;
//匿名内部类的演示:
public class NstInnerClassDemo {

    public static void main(String[] args) {
        /*
         * 1.创建了Coo的一个派生类,但是没有名字
         * 2.为该派生类创建了一个对象,名为o1
         *   Doo o1=new Doo();
         * 3.大括号中的为派生类的类体。
         */
        Coo o1=new Coo(){
            
        };
        
        final int num=5;
        /*
         * 1.创建了Doo的一个派生类,但是没有名字
         * 2.为该派生类创建了一个对象,名为o3
         * 3.大括号中的为派生类的类体。
         */
        Doo o3=new Doo(){
            void show(){
                System.out.println("showshow");
                System.out.println(num);
            }
        };
        o3.show();

    }

}
/*
class Doo extends Coo{
    
}*/

abstract class Doo{
    abstract void show();
}

abstract class Coo{
    
}

 

 



面试题:
问:内部类有独立的.class 吗?
答:有

以上是关于java 内部类的主要内容,如果未能解决你的问题,请参考以下文章

# Java 常用代码片段

# Java 常用代码片段

elasticsearch代码片段,及工具类SearchEsUtil.java

片段 - 全局视图变量与本地和内部类侦听器和内存泄漏

为啥片段类应该是公开的?

ForegroundService没有从片段开始?