我發現做一個數組的長度,當你寫的東西,如:爲數組列表或字符串長度和長度()有什麼區別?
arrayone.length;
然而,對於這樣的事情,你寫上年底的支架,如以下對於字符串的長度:
stringone.length();
,這是什麼的關鍵原因和你怎麼知道什麼時候把括號還是現在?
我發現做一個數組的長度,當你寫的東西,如:爲數組列表或字符串長度和長度()有什麼區別?
arrayone.length;
然而,對於這樣的事情,你寫上年底的支架,如以下對於字符串的長度:
stringone.length();
,這是什麼的關鍵原因和你怎麼知道什麼時候把括號還是現在?
.length;
直接訪問字段構件。
.length();
調用方法(即訪問者)來訪問字段構件。
在String
的情況下,這是預料之中的,因爲它是不可變的。
.length()是一個String類的方法,它返回字符串中的字符數。
.length將給出存儲在數組中的元素的數量。
public class length
{
public static void main(String args[])
{
String x="test";
int a[]={1,2,3,4};
System.out.println(x.length());
System.out.println(a.length);
}
}
// output
4
4
唯一真正知道何時使用哪種體驗的方法。儘管具有自動完成功能的IDE通常會在您不記得時幫助您。
大部分(並不總是)array.length,System.out和System.err是最常見的3,你會遇到的實際上是成員訪問而不是方法調用。
Array.length
是Array
的屬性,類似於變量引用。
ArrayList.size()
是對數組列表對象的實際方法調用。
Arrays
的處理方式不同於Strings
或ArrayLists
或其他任何可以用Java計算的東西。 Array
幾乎是一個本地類型,它的長度在初始化後永遠不能改變,所以不需要封裝。長度變量可以直接暴露,沒有副作用。
爲什麼String
使用方法,而不是一個變量的原因是因爲它內部使用char[]
,它不希望公開揭露(對於不變性/封裝),所以它包裝在length()
方法的長度是可變的。 ArrayList
有一個size()
方法而不是一個length
變量是相同的原因。
唯一一次使用變量而不是方法是數組。其他一切都將是方法。也就是說,除了數組外,你會使用括號。
int[] myArray = new int[10];
String myString = "hello world!";
List<int> myList = new ArrayList<int>();
myArray.length //gives the length of the array
myString.length() //gives the length of the string
myList.size() //gives the length of the list
它很可能是字符串和數組被設計在不同的時間,因此最終使用不同的約定。一個理由是由於字符串在內部使用數組,所以使用了length()方法來避免重複相同的信息。最終,這只是一個不一致的演變,如果語言從頭開始重新設計,那麼演變肯定會得到解決。 :d
的主要區別是,在A)第一種情況下其例如int[]
,Object[]
,double[]
陣列類型,等..具有稱爲lenght和B)第二殼體是具有對象字符串公共字段一個稱爲length()
的函數,該函數可能被稱爲getLength()
或別的東西。數組類型的公共字段長度可能是C++處事方式的後遺症。
數組類型有以下幾種:
length
是一個僞數據成員引用,只適用於(small-a)數組(忽略可定義實現該成員的類)。
其他一切都是類的對象,並且具有此概念的所有JDK類都定義了length()
或size()
實例方法。 (我希望他們一直保持一致並挑選其中一個,但那是橋上的水。)
不是。它並不是說它們是在不同的時間設計的。任何有'尺寸'的東西 – 2011-12-30 03:11:15