内部类

内部类

在一个类的内部添加一个类

成员内部类

内部类可以获得外部类的私有属性私有方法。

内部类实例化方法在Application中有说明:

package OOP02.demon9;

public class Outer {

    private  int id = 10;
    public  void out(){
        System.out.println("外部类的方法");
    }

    public class Inside{
        public void in(){
            System.out.println("内部类的方法");
        }

        //内部类可以获得外部类的私有属性,私有方法
        public void getId(){
            System.out.println(id);
        }
    }
}
package OOP02.demon9;

public class Application {
    public static void main(String[] args) {
        Outer outer = new Outer();

        //通过这个外部类来实例化内部类
        outer.new Inside();
        //外部类型的内部类型 对象名 = 外部实例化对象名.new 内部类型
        Outer.Inside inside = outer.new Inside();
        inside.in();
        inside.getId();

    }
}

静态内部类

若内部类的方法为static,则该方法无法访问外部非静态方法和属性。原因还是static在类生成时一同加载。

其他

一个java文件中只能有一个public class,但可以有多个class

package OOP02.demon9;

public class Outer {
    
}
class A{ }

局部内部类

方法里定义的变量就是局部变量,方法里定义的内部类就是局部内部类。

匿名实例化类

package OOP02.demon9;

public class Text {
    public static void main(String[] args) {
        //没有名字初始化类,不用将实例保存到变量中
        new Apple().eat();
        new User() {
            @Override
            public void get() {
            }
        };

    }
    static class Apple {
        public void eat(){
            System.out.println("eat apple");
        }
    }
    interface User{
        void get();
    }
}
上一篇:左连接与右连接


下一篇:Vue时间修饰符