为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

有只小跳蛙 2022-07-20 16:47:36
  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();    }}
查看完整描述

1 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

它没有被初始化,因为它是您的实例成员NonStaticInitializationTest,这意味着您必须为该类创建一个实例才能使该成员存在。

一旦你创建了那个实例,你的nonStatic2实例就会被创建,但目前,你只在你的 main 方法中工作,它是一个静态成员,不需要它的类的实例。


查看完整回答
反对 回复 2022-07-20
  • 1 回答
  • 0 关注
  • 65 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信