2015-12-08 97 views
0

在Oracle教程中,其內容如下:什麼是領域?

「要訪問某個字段,可以使用對象的命名引用,或者可以使用任何返回對象引用的表達式。」

鑑於「字段」是「類變量」的另一個名稱;你爲什麼要使用'指定對象的引用'?當然,使用'給班級命名的參考'會更好?

重寫應該是這樣的: 「訪問類變量,你可以使用一個命名引用對象,如在前面的例子,也可以使用它返回一個對象引用任何表情。」

當然,'對象的名稱引用'將被用來訪問'對象變量'而不是'類變量'?

+0

您可以使用您引用的定義添加指向本教程特定部分的鏈接嗎?你引用的措辭接近規範:「字段聲明(§8.3)描述了一次體現的類變量,以及實例變量,這些變量剛剛爲每個類的實例所體現。一個字段可以被聲明爲final(第8.3.1.2節),在這種情況下,它只能被分配一次。任何字段聲明都可能包含一個初始化程序。「但它清楚地表明,一個字段也可以是一個實例變量。來自:[Classes](https://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html) – zrvan

+0

你的問題是什麼?或者你想通過改寫java教程來展示你有多聰明? – ACV

+0

當然zrvan。這裏是有問題的頁面: https://docs.oracle。com/javase/tutorial/java/javaOO/usingobject.html 它是第18行。 – Chris

回答

0

我將「指定對象的引用」解釋爲「變量」。這裏的field的定義在the documentation

一個類的數據成員。除非另有規定,否則字段不是靜態的。

在下面的例子中

所以,book是一個變量(「命名的對象引用」,books[0]是「表達一個返回參考」,而Title是「場」:

public class Book 
{ 
    public string Title; 
} 

Book book = new Book(); 
book.Title = "Moby Dick"; // set field value 

Book[] books = new Book[10]; 
books[0] = book; 

string title = books[0].Title; // expression that returns an object reference. 
-1

鑑於「場」是一個「類變量」另一名;爲什麼要使用一個「命名的對象引用」當然這將是更好地使用「命名引用一個類的

我不知道該教程是否真的說明了這一點,但無論如何這是錯誤的。 Java語言規範中明確規定(重點煤礦):

域聲明(§8.3)描述類變量,這是體現一次,實例變量,這是新鮮體現爲類的每個實例。

訪問和或修改這些實例變量,其新鮮通過命名參考或返回一個引用對象從而非常有意義的表達體現爲每個對象。

如果教程確實說明了與此相矛盾的內容,那麼這是不正確的。

相關問題