2012-12-10 19 views
4

可能重複:
Why is String.length() a method?在Java中,爲什麼要爲字符串指定一個方法,而它是用於數組的變量?

如果我想知道數組的長度,我將不得不鍵入以下內容:

array.length 

因此,它是一個其中寫入的數組的長度稱爲'數組'。

對字符串同樣的事情會是這樣的:

string.length() 

因此,它是返回「字符串」變量的長度的方法。

但是他們爲什麼選擇讓這兩個不同,而它基本上是一樣的東西......這是因爲效率還是爲什麼呢?

預先感謝您。

+0

第一個可以看作是對象數組的屬性,但第二個是訪問對象字符串的方法。如果我錯了,我正在等待更正。 – SaidbakR

+1

「這是爲什麼」這個問題通常不適合這個論壇。嘗試(程序員.se)(http://programmers.stackexchange.com/) –

+0

它基本上是歷史/傳統。理論上,數組可以使用'length()'或者String可以使用'length'(這在概念上是隻讀的實例字段),但是它們的開始有所不同,將數組'length'作爲代碼解釋/生成的僞字段有一些小優點,但是在Java初始階段出現的優勢在很大程度上消失了與現代的實現 –

回答

1

很好的問題。

數組的大小是固定的,因此具有公共最終長度字段。

字符串正在實現具有需要實現的length()函數的CharSequence接口。

+0

@JB不,如果它的最後 –

+0

是的,的確,我想我有一個精神滑〜) –

+0

長度從未「計算」。字符數組共享是在隱蔽的情況下完成的,並且在API上沒有功能影響。 –

相關問題