JAVA-初步認識-第六章-匿名對象
阿新 • • 發佈:2017-10-08
垃圾 類型 分享 設計 給定 毫無 style 有意 num
一.
沒有名字的對象。new Car();就是匿名對象,其實就是定義對象的簡寫格式。那麽在調用的時候,就要寫成new Car(). run(); 這是匿名的對象的兩種使用方式之一。
兩句寫成一句。
如果寫成new Car().run();new Car().run(); 那麽這就是兩個對象分別進行一次調用。
二.
如果寫成下面這種情況,
我覺著是0….null。
插一句:Car c=new Car(); 如果將Car直接看成是一種類型的話,那麽理解起來毫無壓力。現在為什麽會感到疑惑呢?就在於Car是人為設計的,好像不是java體系的。
Car c=new Car()在開辟內存空間時,先開辟空間,在給定地址,接著成員變量默認初始化值。
new Car().num=5, 這裏是兩步走,先是new Car(), 接著是. num=5; 也就是說先開辟空間並默認初始化,接著賦值。在執行到第二句new Car().color=”green”時,第一個對象已經變成了垃圾,沒有引用和指向。
這裏還要說一句,上面的三個語句中,前兩個是沒有意義的,只有第三個有函數的才有意義。
簡化後有好處,但也有弊端。比如之前的三元運算符,必須要有結果,沒結果簡化不了。
什麽是傳遞?
創建了c1,並且把c1放到show裏面進行了改裝。不用這麽放也行。
在這裏將匿名對象作為實際參數傳遞就意味著肯定會有一個類類型的引用變量來接收這個變量,現在把它往這一傳,c就接收到了。public static void main(Car c), 定義一個c變量,就能接收所有對象進來。
JAVA-初步認識-第六章-匿名對象