2016-04-23 7 views
-2

Entsprechend dieser Frage (Is an array an object in java) gelten Arrays als Objekte in Java.Was ist in Java die Semantik eines Arrays als Objekt?

Die Antworten auf diese Frage verweisen hauptsächlich auf die Sprachspezifikation. Meine Frage ist, welche Methoden und Felder das Objekt hat? Kann ich es direkt instanziieren (int[] myArr = new Array<int>() oder etwas Ähnliches)? Kurz gesagt, wie funktioniert es?

Eine schnelle Suche ergab keine Ergebnisse. Ich sehe das JavaDoc für das Objekt Arrays (zum Sortieren von Arrays usw.), aber nicht JavaDoc für ein Array.

Edit:

Nur klar sein, ich bin nicht versuchen zu lernen, ein Array zum ersten Mal zu verwenden. Ich stelle eine Frage über die Mechanik der Java-Sprache. Ich weiß, ich kann ein Array erstellen:

int[] a = new int[3]; 

Ich frage, ob es einen anderen Weg, es zu tun - da es sich um ein Objekt handelt, ist es ein Objekt Konstruktor, das funktioniert? Gibt es Dokumentation zum Array-Objekt?

+0

Was war unklar von den Antworten in der Frage, die Sie verknüpft haben? Es gibt eine Syntax, um Arrays direkt so zu instanziieren, wie sie sind. – pvg

+0

sehe meine Bearbeitung. Ich frage nicht, wie man ein Array macht, ich frage nach Sprachfunktionen – nhouser9

Antwort

4

Arrays haben eine öffentliche endgültige length Attribut. Sie implementieren die Schnittstellen Cloneable und Serializable. Und natürlich erben sie alle Methoden von Object (equals(), hashCode(), wait(), etc.).

Es gibt keine Klasse, die Sie verwenden können, um eine Instanz zu erstellen, wie Sie es in Ihrer Frage versuchen. Die Syntax zum Instanziieren ist

int[] myArr = new int[someLength]; 

oder, um sie mit nicht standardmäßigen Werten zu füllen;

int[] myArr = new int[] {1, 2, 3}; 

Sie können auch

int[] myArr = {1, 2, 3}; 

verwenden, aber beachten Sie, dass Sie nicht diese kurze Syntax, um einen Wert zu einem vorher deklarierten Variablen zuweisen können. I.e. Sie können Sie

myArr = new int[] {1, 2, 3}; 

aber nicht

myArr = {1, 2, 3}; 
+1

Das Verhalten eines Arrays ist in der Sprache geschrieben, anstatt eine Klasse +1 –

+0

Ich weiß, ich kann es so machen - ich frage Wenn es einen anderen Weg gibt, dies zu tun, indem man einen Objektkonstruktor aufruft. – nhouser9

+0

Und meine Antwort ist: * Es gibt keine Klasse, die Sie verwenden können, um eine Instanz zu konstruieren, wie Sie in Ihrer Frage versuchen *. Da es keine Klasse gibt, können Sie ihren Konstruktor nicht aufrufen. –

0

tun ein Array in einer ähnlichen Art und Weise wie jede andere Klasse des Objekts deklarieren kann.

Wenn Sie nicht sicher über die Größe des Arrays zum Zeitpunkt der Erklärung sind, dann können Sie so gehen ---

class ArrayExample 
{ 
int arr[]; 
public static void main() 
{ 
//take length as input from the user 
arr=new int[anylength]; 
//now do whatever you want to do with this array object 
} 
} 
+0

Nicht zu sehen, wie dies die Frage beantwortet. – ChiefTwoPencils

Verwandte Themen