Java学习笔记83——静态内部类

静态内部类

成员内部类常见的修饰符为:
private:为了保证数据安全性
static:为了方便访问数据

静态修饰的特点:

​ 内部类如果是静态修饰的,只能访问外部类静态的成员

创建静态内部类的格式:

外部类名.内部类名 对象名=new 外部类名.内部类名();

class Outer4{
    private int num = 10;
    private static int num2 = 30;
    
    //静态内部类
    static class Inner4{   //静态的东西不能创建对象,因为静态的东西属于类本身,即Inner4属于Outer4本身
        public void show(){
//            System.out.println(num);
            System.out.println(num2);//内部类可以访问外部类的成员,包括私有
        }

        public static void show2(){
//            System.out.println(num);
            System.out.println(num2);//静态内部类只能访问外部静态成员
        }
    }
}


public class InnerClassDemo4 {
    public static void main(String[] args) {
        //Error:(33, 29) java: 限定的新静态类
//        Outer4.Inner4 oi4 = new Outer4().new Inner4();
//        oi4.show();

        //当内部类是被静态所修饰的时候,出现了另一个创建内部类的格式
        //访问格式如下:
        //外部类类名.内部类类名 变量名 = new 外部类类名.内部类类名();
        Outer4.Inner4 oi4 = new Outer4.Inner4();
        oi4.show();
//      oi4.show2();
        
        //外部类调用静态内部类中的静态成员,无需创建对象,直接调用
        //Outer4里面有静态的Inner4,Inner4里面有静态的show2,无需创建对象直接调用 
        Outer4.Inner4.show2();
    }
}
posted @ 2021-12-13 22:17  欧朋  阅读(99)  评论(0)    收藏  举报