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

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

關于Java實例化的一些疑問

關于Java實例化的一些疑問

千萬里不及你 2018-12-07 05:49:06
這里有兩個類 1 class Driver 2 { 3 //構造方法 4 public Driver(){} 5 6 //成員變量 7 Score score; 8 } 和 1 class Score 2 { 3 int score; 4 5 public Score(int score) 6 { 7 this.score=score; 8 } 9 } 對于實例化對象Driver defender =new Driver();等號左邊是一個對象,等號右邊new了一個對象,整句就是new了一個叫做defender的對象。這是我的理解。 但是對于defender.score = new Score(5);這一句代碼,等號左邊是一個變量,等號右邊new了一個對象,這又應該怎么解釋呢?還是我對實例化的理解本身就出了問題?新手,請指點,謝謝??!
查看完整描述

8 回答

?
當年話下

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

Driver defender =new Driver();

等號左邊?Driver defender 是告訴jvm,我現在需要一個driver類型的變量,該變量的名字叫defender。(jvm會在棧中創建一個變量,此變量是指向Driver 類型的實例的引用)

等號右邊?new Driver(),告訴jvm幫我創建一個Driver類型的變量,此變量實際會在堆內存中新增,

整句代碼的意思就是 讓jvm在堆內存中初始化一個Driver的實例并將此實例的引用傳給棧內存中的defender 變量。

defender.score = new Score(5)

這句和上邊一樣,jvm會先初始化一個Source類型的實例,并將此實例的引用賦值給defender的屬性score。

查看完整回答
反對 回復 2018-12-16
?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

這算啥問題,不都是這樣用的嗎,那個變量的類型就是Score,defender.score不就是Score score嗎,Score score = new Score(5);沒問題呀

查看完整回答
反對 回復 2018-12-16
?
DIEA

TA貢獻1820條經驗 獲得超2個贊

score是對象類型的成員變量

查看完整回答
反對 回復 2018-12-16
?
慕田峪9158850

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

本身就是一個對象,只是作為Driver的一個成員而已

查看完整回答
反對 回復 2018-12-16
?
慕蓋茨4494581

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

第二句的意思是new了一個Score(5)的對象賦值給defender.score這個變量。

查看完整回答
反對 回復 2018-12-16
?
汪汪一只貓

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

defender.score = new Score(5);
等同于
Score tempScore= new Score(5);
defender.score=tempScore

構造函數也是函數,允許傳值進去。

在這里理解為初始化

查看完整回答
反對 回復 2018-12-16
?
慕妹3146593

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

這是關聯類吧。初始化都靠構造函數構造

查看完整回答
反對 回復 2018-12-16
  • 8 回答
  • 0 關注
  • 727 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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