8 回答

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊
Driver defender =new Driver();
等號左邊?Driver defender 是告訴jvm,我現(xiàn)在需要一個(gè)driver類型的變量,該變量的名字叫defender。(jvm會(huì)在棧中創(chuàng)建一個(gè)變量,此變量是指向Driver 類型的實(shí)例的引用)
等號右邊?new Driver(),告訴jvm幫我創(chuàng)建一個(gè)Driver類型的變量,此變量實(shí)際會(huì)在堆內(nèi)存中新增,
整句代碼的意思就是 讓jvm在堆內(nèi)存中初始化一個(gè)Driver的實(shí)例并將此實(shí)例的引用傳給棧內(nèi)存中的defender 變量。
defender.score = new Score(5)
這句和上邊一樣,jvm會(huì)先初始化一個(gè)Source類型的實(shí)例,并將此實(shí)例的引用賦值給defender的屬性score。

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊
這算啥問題,不都是這樣用的嗎,那個(gè)變量的類型就是Score,defender.score不就是Score score嗎,Score score = new Score(5);沒問題呀

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊
第二句的意思是new了一個(gè)Score(5)的對象賦值給defender.score這個(gè)變量。

TA貢獻(xiàn)1898條經(jīng)驗(yàn) 獲得超8個(gè)贊
defender.score = new Score(5); 等同于 Score tempScore= new Score(5); defender.score=tempScore
構(gòu)造函數(shù)也是函數(shù),允許傳值進(jìn)去。
在這里理解為初始化
添加回答
舉報(bào)