• ベストアンサー

Javaの文法

happy_peopleの回答

  • ベストアンサー
回答No.2

argsという名前は文法上の決め事ではなく、「定番」な名前に過ぎません。 ですから、args以外でもコンパイルできて、実行できます。 static とか String args[] をなくした場合、文法上の問題は無いので、コンパイルは出来ます。でも実行できなかったんですよね。それは、Javaのプログラムを実行するときの入り口の形が変わってしまったからです。Javaのプログラムを実行するときに、入り口として、 クラスの外部から呼び出すことが出来る(public)。 クラスのオブジェクトに作用するものではない(static)。 復帰値がない(void)。 mainという名前である。 Stringの配列を引数とする ようなメソッドを探します。 改造後のmainメソッドは、staticでなくStringの配列を引数としていない為に、入り口としての体を成さなくなったのです。期待した形の入り口が見つからないために、プログラムは実行できなくなります。

関連する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