2016-04-23 3 views
-2

この質問(Is an array an object in java)によれば、配列はJavaのオブジェクトと見なされます。Javaでは、オブジェクトとしての配列のセマンティクスは何ですか?

この質問に対する回答は、主に言語仕様への参照を引用しています。私の質問は、そのオブジェクトが持つメソッドやフィールドは何ですか?直接インスタンス化することはできますか(int[] myArr = new Array<int>()、または類似のもの)?要するに、どのように機能しますか?

クイック検索で結果が見つかりませんでした。 Arraysオブジェクト(配列のソートなどに使用)のJavaDocは表示されますが、ArrayのJavaDocは表示されません。

編集:

ただ、明確にするために、私は初めてのアレイを使用することを学ぶしようとしているわけではありません。私はJava言語の仕組みについて質問しています。私は配列を作成することができます知っている:

int[] a = new int[3]; 

それを行うための別の方法がある場合は、私が求めている - それはオブジェクトであるため、作品オブジェクトコンストラクタはありますか?配列オブジェクトに関する文書はありますか?

+0

あなたがリンクした質問の回答から不明な点は何ですか?配列をそのままインスタンス化するための構文があります。 – pvg

+0

私の編集を参照してください。私は配列を作る方法について尋ねていません、私は言語機能について質問しています – nhouser9

答えて

4

配列には、public final length属性があります。彼らはCloneableSerializableインターフェイスを実装しています。もちろん、すべてのメソッドをObjectequals()hashCode()wait()など)から継承しています。

あなたの質問で試しているようにインスタンスを構築するためのクラスはありません。それらをインスタンス化する構文は、

int[] myArr = new int[someLength]; 

です。デフォルト以外の値を設定するには、次のように入力します。

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

また

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

を使用しかし、あなたは、事前に宣言された変数に値を割り当てるには、この短い構文を使用することはできませんのでご注意することができます。私。あなたは、あなたが他のクラスのオブジェクトと同様の方法で配列を宣言することができます

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

なく

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

配列の振る舞いはクラスではなく言語に書き込まれます+1 –

+0

私はそうすることができます - 私は尋ねています別の方法がある場合は、オブジェクトコンストラクタを呼び出します。 – nhouser9

+0

そして、私の答えは:*あなたの質問にしようとしているインスタンスを構築するために使用できるクラスはありません。クラスがないので、そのコンストラクタを呼び出すことはできません。 –

0

を行うことができます。 Bozhoの答えから

あなたは、宣言時に配列のサイズがわからない場合、あなたはこのように行くことができます---

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

これがどのように質問に答えるかを確認することができません。 – ChiefTwoPencils

関連する問題