2017-02-17 17 views
-2

私はJavaに新しいので、Eclipseに浮動小数点値を出力するようには思えません。どんな助けもありがとうございます。Eclipseは出力されません

package Main; 

import java.util.ArrayList; 

public class Main { 

    public static void main(String[] args) { 
     ArrayList<Float> prices = new ArrayList<Float>(); 

     prices.add((float) 66.46); 
     prices.add((float) 66.34); 
     prices.add((float) 66.82); 
     prices.add((float) 66.37); 
     prices.add((float) 66.56); 
     prices.add((float) 66.89); 
     prices.add((float) 67.80); 
     prices.add((float) 68.25); 
     prices.add((float) 67.88); 
     prices.add((float) 67.80); 

     System.out.println(program(prices); 
    } 

    //there is a lot of code in between but I dont think it is needed here 

    float program(ArrayList<Float> prices) { 
     float prob = counters(prices); 
     return prob; 
    } 
} 

原因がわかりません。私はpublic static void main(String[] args)に何も持っていないので問題があると思うが、main()program(prices)のような関数を呼び出すと、静的に変更する必要がある。

+0

mainからメソッドを呼び出さなかったので、mainメソッドからの呼び出しを行わずに出力を得るにはどうすればよいですか?あなたはmainメソッドから必要なメソッドを呼び出す必要があります。 – Shaon

答えて

0

、それはクラスのmainメソッドを呼び出すことによって開始します。 mainメソッドは、アプリケーションの実行に必要な他のすべてのメソッドを呼び出します。

そして、あなたのコードでは、あなたが実際public static void main()機能には何もありません:実行開始され、そこからmainメソッドの

今典型的な定義。したがって、コードを実行すると、何も起こっていません。

これで今できることは?

次の2つのもののいずれかを指定できます。

  • すべてのコードをvoid main()からpublic static void main(String[] args)にシフトします。
  • このようなことをしてください。

public static void main(String[] args) { 
    Main obj = new Main(); 
    obj.main(); // this will call the void main() function 
} 

私はそれでmain()またはprogram(prices)ような関数を呼び出すと、それは静的にそれらを変更するために私を必要とします。

はい、あなたは静的関数public static void main()からmain()またはprogram(prices)などの非静的関数を呼び出すことはできません。

のいずれかを行うことができます。

  • main()またはprogram(prices)を静的にします。 Ex。、static float program(ArrayList<Float> prices)
  • Mainクラスのオブジェクトを作成し、次に示すようにメソッドを呼び出します。

public static void main(String[] args) { 
    // write your other code here 
    Main obj = new Main(); 
    System.out.println(obj.program(prices); 
} 
0

void main()を削除し、そのコードをpublic static void main(String [] args)に配置します。 メインメソッドは何も持っていないので、null値を返しています。 試してください:Javaインタプリタは、(アプリケーションの支配階級時に呼び出されることによって)アプリケーションを実行すると

import java.util.ArrayList; 

public class Main { 

public static void main(String[] args) { 
    ArrayList<Float> prices = new ArrayList<Float>(); 

    prices.add((float) 66.46); 
    prices.add((float) 66.34); 
    prices.add((float) 66.82); 
    prices.add((float) 66.37); 
    prices.add((float) 66.56); 
    prices.add((float) 66.89); 
    prices.add((float) 67.80); 
    prices.add((float) 68.25); 
    prices.add((float) 67.88); 
    prices.add((float) 67.80); 

    System.out.println(program(prices)); 


} 
+0

私はこれを前に試しましたが、私はもう一度やりました。プログラムの下に赤い線があり、「非静的メソッドプログラム(ArrayList )をタイプMainから静的に参照することができません」というメッセージが表示され、program()をstaticに変更することを示唆しています。 – Migos

+0

メソッド参照が多忙なようです:https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.htmlを参照してください。 – Akshay

0

静的mainメソッドでは、あなたのクラスの新しいインスタンスを作成し、パラメータを指定せずに、そのオブジェクトのmainメソッドを呼び出します。それ以外の場合、クラスアプリケーションが1つだけの場合は、メインメソッドをstaticに変更することができます。

ところで、あなたのメソッドの名前を "main"のように指定しないでください。通常、このようなメソッドは "アプリケーションへのエントリ"を意味します。

関連する問題