-PR-
解決済み

Javaの文法

  • 暇なときにでも
  • 質問No.55027
  • 閲覧数99
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 50% (8/16)

Javaプログラミングの勉強をはじめたばかりですが、本を見てもいまいちよくわかりません。多分、わからないのはpublic sta…の部分を理解できていないからだと思います。public static void main(String args[])の意味がよくわかりません。public staticはどういう意味なんでしょうか?それとString args[]の部分がなぜ必要なのかがよくわかりません。どなたか教えてください。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル9

ベストアンサー率 30% (25/81)

argsという名前は文法上の決め事ではなく、「定番」な名前に過ぎません。
ですから、args以外でもコンパイルできて、実行できます。

static とか String args[] をなくした場合、文法上の問題は無いので、コンパイルは出来ます。でも実行できなかったんですよね。それは、Javaのプログラムを実行するときの入り口の形が変わってしまったからです。Javaのプログラムを実行するときに、入り口として、

クラスの外部から呼び出すことが出来る(public)。
クラスのオブジェクトに作用するものではない(static)。
復帰値がない(void)。
mainという名前である。
Stringの配列を引数とする
ようなメソッドを探します。

改造後のmainメソッドは、staticでなくStringの配列を引数としていない為に、入り口としての体を成さなくなったのです。期待した形の入り口が見つからないために、プログラムは実行できなくなります。
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル9

ベストアンサー率 30% (25/81)

public static void main(String args[]) という宣言は、次のことを表しています。

このメソッドは、クラスの外部から呼び出すことが出来る(public)。
このメソッドは、クラスのオブジェクトに作用するものではない(static)。
このメソッドは、復帰値がない(void)。
このメソッドは、mainという名前である。
このメソッドは、Stringの配列を引数とし、その配列にargsという名前を付ける。

publicの部分は、publicの他に、package public(同じパッケージ内からは呼び出せるが他のパッケージからは呼び出せない)、protected(このクラス自身かその派生クラスから呼び出せる)、private(このクラスだけから呼び出せる)というバリエーションがあります。

その他の詳細は、勉強が進んだときにまたどうぞ(ってことで良い?)
補足コメント
kanep

お礼率 50% (8/16)

argsは配列の名前ということは別の名称を使っても問題ないんですよね。
ためしに別名でコンパイルし実行することができました。でも、なぜJavaの
本にはargsという配列で統一しているのですか?
それから、staticやString args[]を抜かして下のようなコードでコンパイル
したところコンパイルは成功しますが実行できません。これはなぜでしょうか?

class abc{
void main(){
int x = 50;
System.out.println(x);
}
}
投稿日時 - 2001-03-23 02:01:12


  • 回答No.3
レベル9

ベストアンサー率 30% (25/83)

>本にはargsという配列で統一しているのですか?
引数を英語では「argument」と書きます。
ここから「arg」という名前がついています。C言語でも多く見られる表現です。
また、最後の「s」は配列だから複数形の「s」です。
配列にならなければ「arg」、配列になれば「args」ですね。

>コンパイルは成功しますが実行できません。これはなぜでしょうか?
Javaのプログラムは「void main(String[])」から実行が開始されます。
>void main(){
とした場合は、引数の型が「(String[])」と「()」で異なるために別のメソッドとて識別されます。
したがって「void main(String[])」型で定義されたメソッドがない場合は実行の開始が出来ません。
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ