内部类对象的创建

与方法中是否能够使用静态变量相同,非静态内部类不能声明静态成员变量,静态内部类可以声明静态成员变量。

非静态内部类对象的创建:

先创建外部类对象,之后外部类对象调用new关键字创建内部类对象。

    Outter outter=new Outter();

    Outter.Inner inner=outter.new Inner();

静态内部类对象的创建:外部类.内部类直接创建。

    Outter.Inner inner=new Outter.Inner();

public class Outter {

    public static class Inner1{
        public static String text="静态成员变量";
    }

    public class Inner2{

        public String text="非静态变量";
    }
    public class Inner3{
        //非静态内部类不能声明静态成员变量
        //public static String text="静态成员变量";
    }

}

内部类对象的创建:

public class Test {
    public static void main(String[] args) {

        //创建静态内部类对象,语法 外部类.内部类 引用名=new 外部类.内部类()
        Outter.Inner1 inner1=new Outter.Inner1();
        System.out.println(inner1.text);

        //创建非静态内部类对象
        //如果继续采用静态内部类语法创建,则出现is not an enclosing class
       // Outter.Inner2 inner2=new Outter.Inner2();

        Outter outter=new Outter();
        Outter.Inner2 inner2=outter.new Inner2();
        System.out.println(inner2.text);

        //与方法类似,非静态内部类不能调用静态资源
        Outter.Inner3 inner3=outter.new Inner3();

    }
}

猜你喜欢

转载自blog.csdn.net/JWbonze/article/details/94594931