-2
import java.util.Scanner;
public class LKM {
public static void main(String[] args){
    Scanner keyboard=new Scanner(System.in);
     String startKm=keyboard.nextLine();
     String endKm=keyboard.nextLine();
     String liters=keyboard.nextLine();
}
    public void Car (double startOdo, double endOdo, double liters){
    startKm=startOdo;
    endKm=endOdo;
    liters=liters;
}
public static void LKM(String args[]){
   calculateLKM red=new Car(1,20,10);
   Car white=new Car(5,10,5);
   System.out.println((red.endKm-red.startKm)/red.liters);
   System.out.println((white.endKm-white.startKm)/white.liters);
}
}

1 つのコンストラクターと 1 つのメソッドを使用して、自動車の燃料消費量を計算するクラスを定義する必要があります。クラスとオブジェクトを学習しようとしましたが、うまくいきませんでした..いくつかのヒントが必要です. ありがとうございました。

4

1 に答える 1

0

メソッドとコンストラクターを混同していると思います。「New Car()」を実行すると、Car Contrustor を呼び出そうとします。そのためには、コンストラクターを内部に持つクラス「Car」が必要です。

「Car.java」という名前の新しいファイルを作成し、次のコードを内部に挿入します。

public class Car {
    public Car(double startOdo, double endOdo, double liters){
      this.startOdo = startOdo;
      this.endOdo = endOdo;
      this.liters = liters;
    }
}

しかし、やりたくない場合:

startKm=startOdo;
endKm=endOdo;
liters=liters;

Car クラス内にフィールドが必要です。Car クラスのフィールドとして startKm、endOdo、liters を追加します。

private double startOdo;
private double endOdo;
private double liters;

次に、いくつかのゲッターとセッターを追加して、フィールドにアクセスします。

    public double getStartOdo() {
        return startOdo;
    }
    public void setStartOdo(double startOdo) {
        this.startOdo = startOdo;
    }
    public double getEndOdo() {
        return endOdo;
    }
    public void setEndOdo(double endOdo) {
        this.endOdo = endOdo;
    }
    public double getLiters() {
        return liters;
    }
    public void setLiters(double liters) {
        this.liters = liters;
    }

これにより、次のような結果が得られます。

public class Car {
    private double startOdo;
    private double endOdo;
    private double liters;
    public double getStartOdo() {
        return startOdo;
    }
    public void setStartOdo(double startOdo) {
        this.startOdo = startOdo;
    }
    public double getEndOdo() {
        return endOdo;
    }
    public void setEndOdo(double endOdo) {
        this.endOdo = endOdo;
    }
    public double getLiters() {
        return liters;
    }
    public void setLiters(double liters) {
        this.liters = liters;
    }
    public Car(double startOdo, double endOdo, double liters){
      this.startOdo=startOdo;
      this.endOdo=endOdo;
      this.liters=liters;
    }
}

最後に、メインファイルで必要なことを実行できるようになります。データを取得して System.out.println() メソッドで表示するには、「getStartOdo()」、「getEndOdo()」、「getLiters()」を呼び出すだけです。

おっと、Main メソッドで "LKM" メソッドを呼び出すことを忘れないでください。そうしないと、何も起こりません。

于 2016-11-21T10:59:48.447 に答える