- ベストアンサー
main(String[] args) の args ってなに?
JAVA初心者のjavakuraと言う者です。 細かな疑問なのですが、よく使われる main(String[] args) のargsはなんなんでしょうか? Stringクラスの変数という事なんですよね? 暗黙の了解で args が使われているのなら、なんの略なんでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
argumentsの短縮とは思いますが、議論とはちょっと違いますね。新しい辞書などには、「【コンピュータ】関数の引き数」というように掲載されていますから、既にそういう意味として定着しているんじゃないかと思いますよ。 mainの引数の変数名がargsである理由はありません。別に、なんの決まりでもありません。main(String[] hoge)だろうが、main(String[] okwave)だろうが、なんでもかまいません。 なぜargsなのかというと、Javaの開発元であるSun Microsystemsが当初から配布していたドキュメントでそういう変数名を使っていて、初期の頃の解説書の類いがみんなそのスタイルを踏襲していたので、なんとなく「そうするのがマナー」みたいな暗黙の了解ができあがった・・・というようなことなんじゃないでしょうか(想像ですが)。 また、Javaに限らず、forの繰り返しで使われるカウンタ変数は、未だにi,j,kという名前が使われていたりしますね。これなども、すべて、そうする理由は全くありません。 ただ、実際にコードを書いていると、「暗黙の了解」があったほうがコードは書きやすいんです。「iとあったらforのカウンタ」「argsといえばmainの引数」と、誰もが暗黙の了解としてそう書くのが当たり前ということになると、それだけ「この変数はなんだ?」と悩む必要がなくなるわけです。逆に、argsやiを全く別の場所で使ったりすると、他人がそのコードを読んだ場合、「あれ? このargsってmain引数と思ってたんだけど・・・違うのか?」なんてことになり、勘違いしたりする可能性が出てきます。 そういうこともあって、あえて暗黙の了解を無視したコードを書く人はあまりいないんでしょう。そうする利点があまりありませんから。
その他の回答 (4)
- neuron-x
- ベストアンサー率52% (139/266)
argsは、変数名です。名前は"args"である必要はなく、変数名として使える名前であれば、何でもかまいません。 ただ、一般的な風習として"args"が使われているのが現状です。"args"以外を使ってもかまいませんが、一般的な人が見ると、なぜ"args"じゃないの?と思われたり、コードの読解に時間がかかる場合もあります。 なので、こういう風習は真似をして、素直に"args"を使っておくことをお勧めします。 ちなみに、 Java:(String[] args) C#:(string[] args) C:(int argc, char* argv[]) こんな感じです。
- Gishi
- ベストアンサー率57% (11/19)
Kyon2_PaPaさんが言うとおり、 「args」という名前を使うのは慣習です。 プログラミング言語には (義務ではないけど)みんなが従っている慣習がいろいろあります。 たとえばクラス名は大文字で始まるというのもそうです。 慣習に従っておいて損はないでしょう。 ちなみに 「引数(arguments)」というのは誤りで 「パラメータ(parameters)」が正しいのだけど 間違ったまま慣習として定着してしまったのだそうです。
- 003br005eed
- ベストアンサー率23% (6/26)
args以外の記述で書かれているのは見たこと無いです。 そういうきまりでは? argsはargumentsの略だったと思います。 コマンドラインからの引数を格納するところです。
お礼
”議論”の略なんでしょうか。 私は単語なのか?それとも変数なのか?がわかりにくいので、変数は日本語でローマ字表記(hairetu,hennsuu)にしているのですが、これは必ず、決まり決まってこういう形式なので、特殊なのかな?と。 とても参考になりました。 ありがとうございますね。
- fandame
- ベストアンサー率27% (23/84)
こんにちは。 私的な意見なので、あまり参考にしないで下さい。 Javaのプログラムは、メインから開始されます。 コマンドブロンプト等でから実行する場合、引数を与えることがありますよね。 その引数を受け取る変数配列です。 ですから、 (1)main(String args[])と書いても間違いではない。 (2)main(String argv[])と書いても間違いではない。 みたいです。
お礼
はい、私も変数なら何でもいいのでは? と思っていたのですが、これ意外に見た事がなく、ひょっとして特殊なものなのかな?と思い、変数名を変えてみたもののあまり変化がなくって。 特にJAVAは変数なのか?それとも決まり切った単語なのかが素人の私にはわかりにくくって。 とても参考になりました。 ありがとうございますね。
お礼
やはり、暗黙の了解で使われているもの。 皆さんありがとうございました。