dポイントプレゼントキャンペーン実施中!

以下はJavaの参考書の問題集に掲載されていた、無名配列を作成するソースコードです。
この書き方について疑問があるので、質問させて頂きます。


int[][]n=new int[2][];
n[0]=new int[3];

このn[0]=new int[3];が、無名配列を使って要素に値を設定していると解説に書かれていました。
しかし、この参考書では、別のページで無名配列の作成方法として、int[]n; n=new int[]{1,2,5};のように、要素リストを代入する書き方が、無名配列の例として
紹介されていました。。

質問1:何故、n[0]=new int[3];の書き方も無名配列なのですか?


質問2:そもそも「無名配列」とは何ですか?参考書にもネットで調べても
その解説がほとんど無かったので、、、

A 回答 (2件)

無名配列という言葉で検索すると、もっとヒットするのはPerlのものですね。


Perlは標準的には、配列は配列名とセットでないと定義できないのですが、
名前無しでも定義する文法があって、それを無名配列と呼びます。
Perlで多次元配列を使いたいとき、この無名配列という仕様が関わってくるのですが、
どうもこの辺から、その参考書の筆者は元Perl使いで、Perlの用語をJavaでも混同して使っているというのが真相な気がしてなりません。
(Perlと比較して考えると、そもそもJavaの配列は全て無名配列です。)

無名○○という用語は、普通は名前を付けなければ定義できないけれど、
特別に名前無しでも定義する方法がある。というとき、前者と区別するために、無名○○とか、匿名○○と呼ぶことが多いです。
(メソッドは通常名前無しでは定義できませんが、C#とかJavaScriptでは名前無しで定義する方法があり、それを匿名メソッドとか呼ばれます。)
Javaには無名クラスという、クラス名を付けずにクラスを定義できる仕様がありますが、こっちは一般的な用語です。

とりあえず「無名配列」は一般的な用語でもないですし、上の話は理解できなくても重要な事は何一つないので、特に気にせず先に進むのがベストでしょう。
    • good
    • 0
この回答へのお礼

丁重なご解答誠にありがとうございます!
あまり気にしないようにします!

お礼日時:2011/09/06 03:18

「問題集」に「無名配列」と出ているなら, その「Javaの参考書」ないし「Javaの参考書の問題集」に「無名配列」なるものの説明があるはずです. それを見てください. もし全く説明されていないなら, それはその本の (著者の) 怠慢というべきでしょう.



一般論的には名前があるかどうかなんて関係ないというか, 「名前がないとそもそもアクセスしようがない」というか....
    • good
    • 0
この回答へのお礼

丁重なご解答誠にありがとうございます!
参考になります!
無名配列について、解説されたものが他のページにないかどうか再度探してみます!

お礼日時:2011/09/06 03:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!