-4

以下は、私が完成させなければならない Java プログラムの手順とコードです。立ち往生していて、続行する方法がわかりません。私はこれを理解しようとしています。自分が何をしているのかわからないような気がします。すべてのヘルプ、指示、および説明は非常に高く評価されます。

Car次のフィールドを持つという名前のクラスを作成します。

yearModel:yearModelフィールドは、車の年式を保持する int です。

make:makeフィールドは、車の型式を保持する String オブジェクトを参照します。

speed:speedフィールドは、車の現在の速度を保持する int です。

さらに、クラスには次のコンストラクターとその他のメソッドが必要です。

コンストラクター: 1 つのコンストラクターは、車の年式、型式、および速度を引数として受け入れる必要があります。yearModelこれらの値は、オブジェクトの、make、およびspeedフィールドに割り当てる必要があります。別のコンストラクターは引数を持たず、車の年式と速度として 0 を割り当て、製造元として空の文字列 ("") を割り当てます。

アクセサー: 適切なアクセサー メソッドは、オブジェクトのyearModelmake、およびspeedフィールドに格納されている値を取得する必要があります。

ミューテーター: 適切なミューテーター メソッドは、オブジェクトのyearModelmake、およびspeedフィールドに値を格納する必要があります。

accelerate: 加速メソッドは、speed呼び出されるたびにフィールドに 5 を追加する必要があります。

brake: ブレーキ メソッドspeedは、呼び出されるたびにフィールドから 5 を減算する必要があります。

ユーザーにデータの入力を求めてからオブジェクトを作成するプログラムでクラスのデモを行いCarます。accelerate次に、メソッドを 5 回呼び出します。メソッドを呼び出すたびに、車accelerateの電流を取得して 表示します。次に、メソッドを 5 回speed呼び出します。brakeメソッドを呼び出すたびに、車brakeの電流を取得して表示します。speed

このプログラムを実行すると、次のような出力が表示されます。

Enter the car's year model: 1965
Enter the car's make: Mustang
Enter the car's speed: 30

Current status of the car:
Year model: 1965
Make: Mustang
Speed: 30

Accelerating...
Now the speed is 35

Accelerating...
Now the speed is 40

Accelerating...
Now the speed is 45

Accelerating...
Now the speed is 50

Accelerating...
Now the speed is 55

Braking...
Now the speed is 50

Braking...
Now the speed is 45

Braking...
Now the speed is 40

Braking...
Now the speed is 35

Braking...
Now the speed is 30

これは私がこれまでに持っているものです:

public class Car {

// Declaration of variables.
private int yearModel;
private String make;
private int speed;

// Constructor that accepts arguements.
public static void acceptor(int yearModelIn, String makeIn, int speedIn){
    Scanner keyboard = new Scanner(System.in);
    System.out.println("Enter the car's year model: ");
    yearModelIn = keyboard.nextInt();  
    System.out.println("Enter the car's make: ");
    makeIn = keyboard.next();
    System.out.println("Enter the car's speed: ");
    speedIn = keyboard.nextInt();
}

// Constructor that zeroes fields.
public void zeroer()
{
    yearModel = 0;
    speed = 0;
    make = ("");
}

// Accessor Methods
public int getYearModel()
{
    return yearModel;
}
public String getMake()
{
    return make;
}
public int getSpeed()
{
    return speed;
}    

// Accelerate method for adding 5 to speed.
public void Accelerate()
{
    speed += 5;        
}

// Brake method for reducing speed.
public void Brake()
{
    speed-=5;
}
4

4 に答える 4

1

まず、メソッドを取り除きacceptorます。それはあなたが思っていることをしていません...あなたを台無しにzeroerする以外に有用な機能を提供しないので、おそらくメソッドも削除します

コンストラクター。1 つのコンストラクターは、車の年式、型式、および速度を引数として受け入れる必要があります。これらの値は、オブジェクトの yearModel、make、および speed フィールドに割り当てる必要があります。別のコンストラクターは引数を持たず、車の年式と速度として 0 を割り当て、製造元として空の文字列 ("") を割り当てます。

そもそも、あなたはこれを見逃しています...

public Car(int yearModel, String make, int speed) {
    this.yearModel = yearModel;
    this.make = make;
    this.speed = speed;
}

これから、車のインスタンスを作成できます...

public static void main(String[] args) {
    Scanner keyboard = new Scanner(System.in);
    System.out.println("Enter the car's year model: ");
    int year = keyboard.nextInt();
    keyboard.nextLine();
    System.out.println("Enter the car's make: ");
    String make = keyboard.nextLine();
    System.out.println("Enter the car's speed: ");
    int speedIn = keyboard.nextInt();

    Car car = new Car(year, make, speedIn);        
}

次に、適切なメソッドを呼び出して状態を変更および報告するだけです。たとえば...

car.Accelerate();
System.out.println(car.getSpeed());

行き詰まったときは、メモとチュートリアルを参照してください。たとえば、クラスのコンストラクターの提供、メソッドまたはコンストラクターへの情報の受け渡しなどです。

Code Conventions for the Java TM Programming Languageを読んでおくと、人々があなたのコードを読みやすくなり、あなたが他の人を読みやすくなります。

于 2014-10-07T04:27:52.347 に答える
0

コーディング構造に少しエラーがあります。

クラス Car は入力を受け取るべきではなく、Car オブジェクトは POJO であり、getter と setter のみである必要があります。

あなたの車はこのようになります

public class Car {
    String model;
    int make;
    double speed = 0.0;
    Car(int make, String model, double speed) {
        this.make = make;
        this.model = model;
        this.speed = speed;
   }

   // then the getters and setters for speed, accelerate, decelerate
}

これで、実装クラスから Car クラスにアクセスできます。たとえば Garage とします。

public class Garage {
    public static void main(String ar[]) {
       // Now take your inputs here say model = Mustang, make = 1995 speed = 50
       Car c = new Car(make, model, speed);
       // and then a simple looping construct
       for(int i = 0; i < 5; i ++) {
           c.accelerate(); // please don't use capitals for method names, because they look like class names
           System.out.println(c.getSpeed());
        }
    }
}
于 2014-10-07T04:42:15.660 に答える
0
public class Car {

    private int yearmake; // Variable of your yearmake of car
    private String model; // Variable of your car company
    private int speed;  // Variable of your car speed

    // getter and setter method as the pojo class defines that will give getter and setter property for the every variable inside class as according to OP it wont let u change Variable directly

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public int getSpeed() {
        return speed;
    }

    public void setSpeed(int speed) {
        this.speed = speed;
    }

    public int getYearmake() {
        return yearmake;
    }

    public void setYearmake(int yearmake) {
        this.yearmake = yearmake;
    }

    public Car(int speed) {
        this.speed = speed;
    }
   // constructor which will accepts and initialize your car with data i mean class
    public Car(int yearmake, String model, int speed) {
        this.yearmake = yearmake;
        this.model = model;
        this.speed = speed;
        System.out.println("Year Make " + yearmake);
        System.out.println("Model " + model);
        System.out.println("Speed " + speed);

    }
    // method of the making accelerate car by speed of 5 
    public int acclarate(int speed) {
        speed = speed + 5;
        System.out.println("Speed Acclarated " + speed);
        return speed;
    }
   // method for reducing speed of 5
    public int Breaking(int speed) {
        speed = speed - 5;
        System.out.println("Speed Breaking " + speed);
        return speed;
    }
   // main method
    public static void main(String[] args) {
        // accept from user input
        Scanner keyboard = new Scanner(System.in);
        System.out.println("Enter the car's made year model: ");
        int year = keyboard.nextInt();
        keyboard.nextLine();
        System.out.println("Enter the car's make Company: ");
        String make = keyboard.nextLine();
        System.out.println("Enter the car's speed: ");
        int speedIn = keyboard.nextInt();
        // initialize car model with constructor
        Car c = new Car(year, make, speedIn);

        //increasing speed with use of method and loop
        for (int i = 0; i < 5; i++) {
            int speedchange = c.acclarate(c.getSpeed());
            c.setSpeed(speedchange);

        }
        //decreasing speed according to your requriement with use of method and loop
        for (int i = 0; i < 5; i++) {
            int decreasedpeed = c.Breaking(c.getSpeed());
            c.setSpeed(decreasedpeed);
        }

    }
}

あなたは他の方法でもそれを行うことができます:)しかし、マッドプログラマーが言ったように私も提案します。いくつかのOPと基本的なことを学びます:)

于 2014-10-07T05:15:37.837 に答える