2012-03-01 10 views
0

私は学校の仕事に取り組んでいますが、今はちょっと混乱しています。誰かが問題を指摘できるので、私はそれから学ぶことができます。だからここにあります:Main.javaと単純な静的な二重計算

それはマイルからキロメートルと副詞の単純な計算です。これは私が持っているものです。

public class Kilometer { 

    static double mijlToKilometer(double mijl) { 
     double kilometer = 1.609 * mijl; 
     return kilometer; 
    } 

    static double kilometerToMijl(double kilometer) { 
     double mijl = 0.622 * kilometer; 
     return mijl; 
    } 
} 

そして、これがメインです:

public class Main { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     // TODO code application logic here 
     Scanner input = new Scanner(System.in); 

     System.out.println("mijl?"); 
     double mijl = input.nextDouble(); 
     Kilometer eenBerekening = new Kilometer(); 
     eenBerekening.mijl = mijl; 
     eenBerekening.mijlToKilometer(); 

     System.out.println("kilometer?"); 
     double kilometer = input.nextDouble(); 
     eenBerekening.kilometer = kilometer; 
     eenBerekening.kilometerToMijl(); 
    } 

} 

私が持っている "インポートjava.util.Scanner;" をそれはそうではありません。 Netbeansは次の行で問題を提起しています:

Kilometer eenBerekening = new Kilometer(); 
    eenBerekening.mijl = mijl; 
    eenBerekening.mijlToKilometer(); 

ヘルプ誰ですか?事前にThx!

更新 これは私が今持っているものであり、動作しています。すべての助けのためのThx !!!

Kilometer.java

public class Kilometer { 

    static double mijlToKilometer(double mijl) { 
     double kilometer = 1.609 * mijl; 
     System.out.println(kilometer); 
     return kilometer; 
    } 

    static double kilometerToMijl(double kilometer) { 
     double mijl = 0.622 * kilometer; 
     System.out.println(mijl); 
     return mijl; 
    } 
} 

Main.java

public class Main { 
    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     System.out.println("mijl?"); 
     double mijl = input.nextDouble(); 
     Kilometer.mijlToKilometer(mijl); 

     System.out.println("kilometer?"); 
     double kilometer = input.nextDouble(); 
     Kilometer.kilometerToMijl(kilometer); 
    } 

} 
+1

あなたはどのようなエラーメッセージが表示されますか? –

+0

シンボルが見つかりません。それはそれが言うことです –

+0

私はmijlどこにあなたのKIlometerクラスを表示されません。 – nullpotent

答えて

0

インスタンスを使用してそれらを呼び出して、実際にいるときあなたのメソッド宣言のためのキーワードstaticを使用しています。

また、あなたはあなたのクラスにはクラス・パラメータmijlを持っていない間

eenBerekening.mijl = mijl; 

を設定しようとしています。ちょうどあなたがあなたのKilometerクラスのmijl属性を持っていない

eenBerekening.mijlToKilometer(mijl); 
1

であなたのメソッドを呼び出します。他の人に指摘されているように、あなたのKilometerメソッドは静的です。ちょうどあなたがインスタンスを必要としない、クラスからそれを呼び出す:

Kilometer.mijlToKilometer(mijl); 
2

あなたのクラスKilometerは、コンパイラが文句を言う理由です、mijlというフィールドを持っていません。

1
Kilometer eenBerekening = new Kilometer(); 
    eenBerekening.mijl = mijl; 

あなたはクラスKilometerのインスタンスを作成し、そのクラスで定義されていないプロパティに代入しています。

eenBerekening.kilometerToMijl(); 

ここでは、インスタンス上staticメソッドを呼び出し、必要なパラメータを渡すに失敗しています。

0

あなたには静的メソッドがあります。あなただけのあなたができる、それらを使用することキロメートルのインスタンスを必要としない、

Kilometer.mijlToKilometer() 
0

をあなたは、これらのメソッドがstatic宣言してきたように:これらのメソッドは、あなたが呼び出す必要がありますので、インスタンス・レベルでクラスレベルではありませんやる:あなたはnewする必要はありませんので、

Kilometer.mijlToKilometer(12.02) 
1
public class Main { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     // TODO code application logic here 
     Scanner input = new Scanner(System.in); 

     System.out.println("mijl?"); 
     double mijl = input.nextDouble(); 
     Kilometer eenBerekening = new Kilometer(); 

     Kilometer.mijlToKilometer(mijl); //calling static class and passing parameter to function 

     System.out.println("kilometer?"); 
     double kilometer = input.nextDouble(); 

     Kilometer.kilometerToMijl(kilometer); // same as before but other function 
    } 

} 
0
  1. 方法は、staticです。
  2. Kilometerクラスのフィールドは公開されていません。mijlはありません。
  3. Kilometerstaticメソッドではパラメータが必要ですが、コードは1つも渡しません。

ので:

double mijl = input.nextDouble(); 
double kilometer = Kilometer.mijlToKilometer(mijl);