2016-02-29 19 views
-1

不要在這裏,對Java中基本的東西有一些疑問。創建參考變量時,我們到底在幹什麼?

如果我們有一個類Person與構造(也人),我們可以創建一個參考變量是這樣的:

Person johnny = new Person(); 

比方說,我們剛剛在一個類People對象,johnny創建。 與原始類型的對象不同(例如,int x = 5;值爲5,johnny是值的「鏈接」) - 如果我理解了它,則它保存對象及其值的「地址」事情正確)

第一個字:Person是一類/類型(< - 在這裏編輯),但是:

  • 是什麼一類/類型嗎?它涉及什麼?也許:如果一個類型不是'原始類型',它會做什麼?

第二字:johnny是參考變量類型的人,。 - 如果我失去了一些東西,請賜教:)

3個字:new這只是指出,我們正在創建的新對象。

4個字:Person

  • 這是對象,我們正在創造?
  • 這是我們所指的構造函數還是類?

ALSO:

  • 的,該變量被參照的值(地址)是在等號後一切?地址new Person

最後:多態性。 因此,如果我們有一個子類Adult,它擴展了超一流的Person,那麼我們就可以做到這一點:

Person amanda = new Adult(); 
  • 什麼是我們現在在做什麼?
  • 是類類型Person的amanda並且指類Adult中的對象?

感謝您的幫助:)

+0

您只能引用一個對象,因此引用的類型是它可以在類的層次結構中的上限。 –

+0

閱讀基本面向對象原則的正派教科書 –

回答

-1

第1個字:「人」是一個類類型

是的,但它或許也同樣是一個基本類型,無所謂對於該變量的類型聲明的「第一個詞」。

另一個例子是

int a = 1;  

當聲明在Java中的變量或參數,該名稱是由類型之前。

第2個字:「約翰尼」是引用變量的類型的人

這是正確的。你在這裏命名你的變量johnny。它的類型就是你在名稱前指定的類型。

第3個字:'new'這只是表明我們正在創建新的對象。

new意味着我們正在調用一個構造函數(該類繼下一個new之後)。這實際上就是你如何在Java中創建對象。

4個字:第二個「人

這是您呼叫的構造函數的類的名稱。這將始終返回該類(不是子類)的新實例。對於一個給定的類,可以有多個構造函數可供選擇,它們通過參數計數和類型(在你的情況下是一個沒有任何參數的構造函數)來區分。

變量所指的值(地址)是等號後的所有值?地址是'新人'?

new Person()返回對新創建的對象實例的引用。它將存儲在您的變量johnny中。

最後:多態性。

您的Adult類是Person的子類。這意味着您可以在需要Person的所有情況下使用它。尤其是,您可以將其分配給Person類型的變量(例如johnny),並調用所有Person方法。

+0

這很有幫助。我需要爲這個確切的實例提供具體的答案。 – yacico

+0

關於Polym:我現在明白變量是在'adu​​lt'中引用一個對象(或者我應該在這裏說實例嗎?)。但是,我需要澄清什麼類(「類型」)「人」呢?我認爲它設置了變量的類型(_how變量可以被設置爲一個類型,實際上是一個類,或者一個類如何被用作類型是令人困惑的)。 – yacico

+0

Java中的每個變量或其他數據都有一個類型。有兩種類型:基本類型(如'int')或對象類型。後者按類層次結構組織,這是用戶可擴展的。你編寫的每個'class'都定義了一個新類型(它將是其他類的一個子類型,所有類都以java.lang.Object作爲基類型)。 – Thilo

相關問題