0

だから私は車のクラスと車のテスターのクラスを持っています. 車のクラスは次のとおりです。

package main;

public class Car {

    private long distance;
    private double newDistance;
    private double gasAmount;
    private double newGasAmount;

    // Contrsuctor 
    Car(){
        distance = 0;
    }


    Car(long newDistance){
        distance = newDistance;
    }
    //Accessor
    public long getDistance(){
        return distance;
    }

    public double getGasInTank(){
        return gasAmount;
    }

    //Mutator
    public void drive(double distance){
        newDistance = distance;
    }    
    public void addGas(double gasAmount){
        newGasAmount = gasAmount;
    }
}

そして、ここに問題があります。私の carTester クラスでは、なぜmyVehicle.drive();機能しないのですか?? 赤で下線が引かれ (netBeans)、「パッケージ myVehicle が存在しません」と表示されます

package main;

public class CarTester {

    Car myVehicle = new Car();
    myVehicle.drive();
    double gasLeft = myVehicle.getGasInTank();
}
4

3 に答える 3

2

Objectクラス ブロック内で操作を呼び出そうとすると、コンパイラはこのメッセージを発行します。

mainでメソッドを使用する必要がありますCarTesterdouble distanceまた、メソッドに従って値を指定する必要がありますdrive

public class CarTester {
  public final static void main(String[] args) {
    Car myVehicle = new Car();
    myVehicle.drive(33.2);
    ...
  }
}
于 2013-03-27T23:23:49.073 に答える
0

メソッド内の CarTester クラスでコードを実行します。たとえば、public final static void main(String[] args) {...}...

例えば

package main;

public class CarTester {
  public final static void main(String[] args) {
    Car myVehicle = new Car();
    myVehicle.drive();
    double gasLeft = myVehicle.getGasInTank();
  }
}
于 2013-03-27T23:25:40.340 に答える
0

問題は、 classにメソッドがないことCarTesterだと思います。コンパイラは、行をタイプmyVehicleとして解釈しようとしているため、 という名前のパッケージが見つからないと不平を言っています。クラスを次のように変更する必要があります。myVehicle.drive();CarTester

public class CarTester
{
    public static void main(string[] args)
    {
        Car car = new Car();
        car.drive(10.0);
        double gasLeft = car.getGasInTank();
    }
}
于 2013-03-27T23:26:15.603 に答える