2013-05-11 161 views
1

在下面的問題我沒有得到大膽的行。該行是否意味着創建類隔離的數組對象?因爲據我所知,Java沒有指針的概念。對象陣列

創建一個抽象類隔間來代表鐵路教練。在課堂上提供抽象功能通知。從課堂課導出FirstClass,General,Ladies和Luggage課程。覆蓋其中每一個的通知功能。 創建一個TestCompartment類。寫主要功能做到以下幾點: 聲明大小10

+1

「參考」和「指針」是一回事。 (它寫得很差,寫它的人應該得到一個「D」。) – 2013-05-11 11:21:56

+0

(JLS 4.3.1第2行)引用值(通常是引用)是指向這些對象的指針,還有一個特殊的空引用,沒有對象。 – johnchen902 2013-05-11 11:28:27

回答

2

一方面,Java沒有指針的概念;另一方面,Java以外的所有東西(即所有的Object衍生的東西)都可以作爲「指針」,儘管在技術上它們不被稱爲「指針」。

Java調用它們引用,但既然有這樣的東西作爲參考null,他們表現得非常像C和C++指針。

無論如何,當你創建的十個非原語的數組,您創建引用數組,每一個組到null

Compartment[] compartments = new Compartment[10]; 

這是從創建10個Compartment對象的不同,在對象當你創建一個數組時,它們本身不會被創建,只有在需要的時候纔可以通過它來引用這些對象。

+0

那麼,在Java中,*表示空引用:-) – 2013-05-11 11:27:55

+0

@ dasblinkenlight真的很好的解釋。 +1 – 2013-05-11 12:34:53

0

這很可能意味着的隔間指針數組:創建引用大小10陣列。

+0

引用究竟意味着什麼?我們應該創建對象嗎? – Lizzie 2013-05-11 11:22:49

+0

@Lizzie - 如果它說創建數組,大概你只是創建數組 - 值將是'null'。但正如我上面所說,這是一個非常措辭不清的陳述。 – 2013-05-11 11:26:05

+0

引用是'Compartement con;中的var的類型'con是對Compartement對象的引用,但是直到您創建它指向的對象爲空 – Joan 2013-05-11 11:26:49

0

Java沒有像這樣的指針。所有不是原始的東西都是參考。

+0

「參考」和「指針」之間有什麼區別? – 2013-05-11 11:23:42

+0

@HotLicks:有一件事存在,另一件不存在。存在的東西和不存在的東西之間有什麼區別? – 2013-05-11 11:29:03

+0

@HotLicks添加到Kerrek,如果你需要它,AFAIK的區別是我們不能對引用進行算術運算。我們可以在指針 – 2013-05-11 11:31:04

0

儘管Java中引用的底層實現歸結爲C類指針(因爲它在某些時候確實如此),但我認爲引用將是貫穿請求的更好方式。您只需聲明一個經典數組。

+0

引用並不總是用java中的指針實現的。來自Oracle的當前64位jvm確實有一種模式,其中引用存儲爲32位值,然後在使用前將其移位2次。因此,每個參考僅使用32位,但仍允許訪問16GB RAM。 – MTilsted 2013-05-11 12:23:09

+0

@MTilsted - 還有一些類似操作的指針實例。 – 2013-05-11 18:20:11