为什么下面代码中的这个特定类成员没有初始化?

  class nonStatic1 {

        nonStatic2 n2 = new nonStatic2();


        nonStatic1() {

            this.print();

        }


        void print() {

            System.out.println("insidenonStatic1");

        }

    }



    class nonStatic2 {


        nonStatic2() {

            this.print();

        }


        void print() {

            System.out.println("insidenonStatic2");

        }

    }


class nonStatic3 {

    nonStatic1 n1 = new nonStatic1();


    nonStatic3() {

        this.print();

    }


    void print() {

        System.out.println("insidenonStatic3");

    }


}


public class NonStaticInitializationTest {

    nonStatic2 n2 = new nonStatic2(); // <-- Never initialized!!


    public static void main(String args[]) {

        System.out.println("initialising n3 through main");

        nonStatic3 n3 = new nonStatic3();

    }


}


有只小跳蛙
浏览 66回答 1
1回答

元芳怎么了

它没有被初始化,因为它是您的实例成员NonStaticInitializationTest,这意味着您必须为该类创建一个实例才能使该成员存在。一旦你创建了那个实例,你的nonStatic2实例就会被创建,但目前,你只在你的 main 方法中工作,它是一个静态成员,不需要它的类的实例。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java