第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何避免在這里創(chuàng)建類似對象的冗余實例?

如何避免在這里創(chuàng)建類似對象的冗余實例?

阿晨1998 2023-07-28 10:06:38
我必須編寫一個代碼來記錄參加不同活動的競爭對手。競爭對手是一個具有以下屬性的類:name、surname、age、id。事件是一個具有以下屬性的類:名稱、日期、參賽者列表。然后教授說我還必須跟蹤競爭對手是否已確認(rèn)參加該活動。也就是說,參賽者可能已被列入某項賽事,但可能尚未確認(rèn)參加該賽事。如何實現(xiàn)這一點取決于我。因此,請記住,競爭對手可能會參加多個活動,我想避免為同一個人參加的每個活動創(chuàng)建一個 Competitor 對象。我正在考慮一些在 C 中聽起來最佳但無法翻譯成 Java 的東西:我想創(chuàng)建一個新類 CompetitorInEvent,它將保存 Competitor 中包含的所有信息以及代表事件確認(rèn)的布爾值(沒有說明是哪個事件,因為這樣的 attendantInEvent 所屬的列表已經(jīng)告訴了它)。因此,我會將參賽者名單變成參賽者名單。CompetitorInEvent 不應(yīng)擴(kuò)展 Competitor,而應(yīng)保存對 Competitor 對象的引用。在 C 中,我承諾僅訪問此引用以進(jìn)行讀取,而絕不進(jìn)行寫入,并且我將讓 struct CompetitorInEvent 只存儲一個地址和一個布爾值(或者更確切地說是 C 中的一個短值)。這對我來說似乎是正確的,因為我沒有多次實例化相同的現(xiàn)實世界對象或浪費內(nèi)存。但是有沒有辦法在 Java 中實現(xiàn)這些相同的目標(biāo)呢?我知道指針不可用。
查看完整描述

1 回答

?
九州編程

TA貢獻(xiàn)1785條經(jīng)驗 獲得超4個贊

Java 保存對象的引用,您可以將其視為指針。您只是不能像 C 中的指針那樣對引用進(jìn)行任何算術(shù)運算。因此,此代碼顯示了兩個引用同一競爭對手的 CompetitorInEvent:


class CompetitorInEvent {

    private Competitor competitor;


    public CompetitorInEvent(Competitor competitor) {

        this.competitor = competitor;

    }

}

然后使用這個:


Competitor aCompetitor = new Competitor();

CompetitorInEvent event1 = new CompetitorInEvent(aCompetitor);

CompetitorInEvent event2 = new CompetitorInEvent(aCompetitor);

現(xiàn)在只實例化了一個 Competitor,并有 3 個對它的引用:局部變量 aCompetitor 和兩個事件。請注意,Java 維護(hù)對象的引用計數(shù),并且不會垃圾收集(銷毀)aCompetitor,直到局部變量超出范圍(或重新分配給另一個引用),并且兩個 CompetitorInEvent 對象都被銷毀/垃圾收集。


查看完整回答
反對 回復(fù) 2023-07-28
  • 1 回答
  • 0 關(guān)注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號