• ベストアンサー

Javaの文法

happy_peopleの回答

回答No.1

public static void main(String args[]) という宣言は、次のことを表しています。 このメソッドは、クラスの外部から呼び出すことが出来る(public)。 このメソッドは、クラスのオブジェクトに作用するものではない(static)。 このメソッドは、復帰値がない(void)。 このメソッドは、mainという名前である。 このメソッドは、Stringの配列を引数とし、その配列にargsという名前を付ける。 publicの部分は、publicの他に、package public(同じパッケージ内からは呼び出せるが他のパッケージからは呼び出せない)、protected(このクラス自身かその派生クラスから呼び出せる)、private(このクラスだけから呼び出せる)というバリエーションがあります。 その他の詳細は、勉強が進んだときにまたどうぞ(ってことで良い?)

kanep
質問者

補足

argsは配列の名前ということは別の名称を使っても問題ないんですよね。 ためしに別名でコンパイルし実行することができました。でも、なぜJavaの 本にはargsという配列で統一しているのですか? それから、staticやString args[]を抜かして下のようなコードでコンパイル したところコンパイルは成功しますが実行できません。これはなぜでしょうか? class abc{ void main(){ int x = 50; System.out.println(x); } }

関連するQ&A

  • javaの基本的な質問

    java初心者です。 サンプルプログラム等の宣言部分が下記の2通りで記載されていることがありますが、 カギ括弧の位置が違うこの2つは何か意味があるのでしょうか? それとも同じ意味ですか? ----------------------------------------- public static void main (String args[]) public static void main (String[] args) ----------------------------------------- よろしくお願いします。

    • ベストアンサー
    • Java
  • javaのmainの引数はなぜstring[]?

    Java初心者です。 基礎的なことなのですが、質問させてください。 javaのmainメソッド定義の public static void main (String[] args) について、String[] argsの部分がjavaコマンドで実行する際に与える引数であることは 理解できました。しかし、なぜStringの配列なのかが理解できません。 実行時の引数であれば、intやdoubleも使い道があるようにも感じるので、 プログラマの好きに定義できた方が便利な気がしますし、実行時に引数を与えないなら public static void main () としてしまったほうがわかりやすいとも感じてしまいます。 実はコンパイル時や実行時に裏の見えない部分でStringの配列を使っているとか、 何か理由があるのでしょうか? mainの定義は main (String[] args)と暗記でもいいのですが、 気になったので知りたく、質問させてください。

    • ベストアンサー
    • Java
  • Javaについて教えてください!

    sampleパッケージに属するMain.javaとSub.javaがあり、Main.javaのmainはSub.javaのsubメソッドを呼び出して「OK」と表示させるプログラムを教えてください! //Main.java package sample; public class Main{ public static void main(String[] args){ Sub.sub(); }} //Sub.java package sample; public class Sub{ static String str = "OK"; public static void sub(){ System.out.println(str); }} String型の変数strはクラス変数で行いたいのですが、どこを改善すれば良いでしょうか?

    • ベストアンサー
    • Java
  • Javaに関する初歩的な質問です。

    Javaを勉強中なのですが、 class Test{ public static void main(String args[]){ int a = 10; { int a = 10; } } } これがエラーになる理由がいまいちわかりません。 ぜひとも教えてください。

  • javaのmainメソッド

    public static void main(String args[]) と public static void main(String[] args) の違いを説明してくれないですか? 小さい質問ですいませんが、回答よろしくおねがいします!

  • java 実行できない

    javaで public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!"); } } のようなプログラムをかいて、コンパイルして、実行しようとすると エラー: メイン・メソッドがクラスStringで見つかりません。次のようにメイン・メソッドを定義してください。 public static void main(String[] args) またはJavaFXアプリケーション・クラスはjavafx.application.Applicationを拡張する必要がありま というエラーがでます。コンパイルはできます。jdkは1.8.0_25を使っています。

  • javaのプログラミングについて教えてください

    大学の課題で摂氏から華氏を求めるプログラミングを作っているのですが、コンパイルをするとどうしても下のようなエラーが出てしまいどこを直せば良いのか教えてください。 エラー: <identifier>がありません pubulic static void main(String[]args){ ちなみに言語はjavaでサクラエディタを使っています。 初心者で何もわからないのでよろしくお願いいたします。

    • ベストアンサー
    • Java
  • Java

    昨日から「やさしいJava」という本をつかって勉強を始めた者です。 最初からなにか上手くいかないので、アドバイスいただけたら嬉しいです。 public class Welcome{ public static void main(String[] args){ System.out.println("Welcome to Java!"); System.out.println("Javaの世界へようこそ!"); } } というソースを作りました。 これを javac Welcome.java とやって、そこまではよさそうなのですが、そのあと、 java Welcome をやったらエラーになります。 ソースも間違いないと思うのですが、よくわかりません。 ファイルの仕方に問題があるのかなとも思っています。 どうか、よろしくお願い致します。

    • ベストアンサー
    • Java
  • javaのpackageのMainとは?

    古い本の初心者プログラムでは、 class Hello{ public static void main(String[] args){ System.out.println("Hello!"); } } だけなんですが、統合環境の Intellij IDEAですと、 package com.company; public class Main { public static void main(String[] args) { // write your code here } } となっていて、mainメソッドを含むクラスのMainを含むpackageが必要になっています。どうしてクラスMainは他のpackageで宣言されてないとならないのですか?

    • ベストアンサー
    • Java
  • (String args[])というメッソッドの意味

    JAVAの初心者です、宜しくお願いします。 アプリケーションのプログラムで、Static Void (String args[])というメッソッドがありますがこれは一体何をさせるものですか。 また色々と本読んでいると、Static Void (String[] args)と配列を設定している場合もあります。 良く理解できません。ベーシックは理解できるのですが。宜しくお願いします。

    • ベストアンサー
    • Java