亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

創建成員變量的實例

創建成員變量的實例

一只甜甜圈 2023-07-28 15:17:34
您好,這是一個基本問題,但請耐心等待。我有兩個班級,班級上有另一個班級的參考。我如何創建在創建第一類實例時存在于第一類中的第二類實例。是否有任何實用程序可以實現此目的。代碼 ::class A  {  B b;}class B { int member;}
查看完整描述

3 回答

?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

在構造函數中(就像羅伯特·科克已經說過的那樣)

class A  {

  B b;


  public A(){

    b = new B();

    b.member = 5;

  }

}

直接作為屬性

class A  {

  B b = new B(5);  

}

帶初始化器

class A  {

  B b;

  {

    b = new B();

    b.member = 5;

  }

}


查看完整回答
反對 回復 2023-07-28
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

在第一個類的構造函數中:


class A 

{

  public A()

  {

    b = new B();

  }


  B b;


}

或者甚至像這樣:


class A 

{

  public A()

  {

  }


  B b = new B();


}


查看完整回答
反對 回復 2023-07-28
?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

一般的解決方案是:


public class A {


    private final B b;


    public A(B b) {

        this.b = b;

    }    

}


...


A a = new A(new B());

當兩個實例相互引用時,這就變得很有趣,那么您需要在至少一個類中使用 setter:


public class B {


    private A a; // the field cannot be final in this case


    public void setA(A a) {

        this.a = a;

    }    

}


....


B b = new B()

A a = new A(b);

b.setA(a);

類本身創建另一個實例的答案不是通用的解決方案。


查看完整回答
反對 回復 2023-07-28
  • 3 回答
  • 0 關注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號