2016-09-28 20 views
-1

如果java中的數組是一個對象,那麼按照OOPS原則,只有類可以有對象。所以我的問題是數組實際上是哪些類的對象?數組是一個對象,其類正好是

+1

https://docs.oracle.com/javase/specs/jls/se8/html/jls-10.html#jls-10.8 –

+1

數組是不是一個類的一個實例,它是一種語言結構,具有保存集合的功能/某種類型的元素列表 – devnull69

+0

@ devnull69「一個數組不是類的實例」False。嘗試調用'someArray.getClass()'或'new String [0] instanceof String []'。 –

回答

1

JLS Sec 10.8

每個陣列具有一個相關聯的對象類,與具有相同的組件類型的所有其它數組共享。

雖然數組類型不是類,每陣列的類對象的行爲如同:

  • 每數組類型的直接超類是對象。

  • 每種數組類型都實現了接口Cloneable和java.io.Serializable。

String[]String[].class實例; int[]int[].class等的實例。這些是與String.classint.class不同的類。

但有全陣列沒有「Array」超作爲第一個項目符號描述:既String[]int[]Object直接子類。

Ideone demo

+0

因此,大多數參考書中提到的數組是一個對象,不再有進一步的討論。 – learner8269

+0

@AuuragDubey這不是不真實的:數組是引用類型,所以它們是Object的子類。他們可能會忽略更多的細節以保持簡單。 –

+0

謝謝。我也對String [],int []等有懷疑。我們怎麼知道這些類的方法是什麼,因爲我找不到任何相同的java API。 @AndyTurner –

相關問題