Java 为什么类别Car会存储对象Car和car2的正确信息,但类别所有者赢了';t存储对象所有者的信息2?

Java 为什么类别Car会存储对象Car和car2的正确信息,但类别所有者赢了';t存储对象所有者的信息2?,java,class,methods,Java,Class,Methods,我对Java还不熟悉。对不起,时间太长了。下面是到目前为止我的代码的输出带有**的部分是我遇到问题的地方。我应该比较两个汽车物体的速度,但每个车主物体不是“安全”就是“鲁莽”的司机。如果他们鲁莽,当他们加速时,他们会加速10。如果他们是安全的,他们加速5。然而,到目前为止,该方面正在工作,只有第一个所有者对象将存储信息。因此,无论第一个所有者对象是什么(安全/轻率),它们都将是。我的汽车对象不会发生这种情况,因为每个单独的对象都在存储正确的信息,这正是我遇到的困难。有人能帮我找出原因吗 Car

我对Java还不熟悉。对不起,时间太长了。下面是到目前为止我的代码的输出带有**的部分是我遇到问题的地方。我应该比较两个汽车物体的速度,但每个车主物体不是“安全”就是“鲁莽”的司机。如果他们鲁莽,当他们加速时,他们会加速10。如果他们是安全的,他们加速5。然而,到目前为止,该方面正在工作,只有第一个所有者对象将存储信息。因此,无论第一个所有者对象是什么(安全/轻率),它们都将是。我的汽车对象不会发生这种情况,因为每个单独的对象都在存储正确的信息,这正是我遇到的困难。有人能帮我找出原因吗

Car Name: Betty
Year: 2002
Car Make: Kia
Car Model: Soul
Car Mileage: 50000
Car Speed: 65
Car owner name: Jane
Car owner type: rash
Car Name: Duke
Year: 2002
Car Make: Ford
Car Model: F250
Car Mileage: 50000
Car Speed: 65
Car owner name: John
Car owner type: safe


Betty is a 2002 Kia Soul.
The current mileage is 50000 and current speed is 65.
Jane is the owner of the car and is a rash driver.

Duke is a 2002 Ford F250.
The current mileage is 50000 and current speed is 65.
**Jane is the owner of the car and is a rash driver.**

The total mileage of both cars is 100000
Betty is going 75.
**Duke is going 75.**
这是我的头等车:

class Car{

//---INSTANCE VARIABLES---
private String carName;
private int yearModel;
private String make;
private String model;
private int speed;
private int mileage;
private Owner carOwner;
private static int totalMileage;


//---CAR CONSTRUCTOR---
public Car(String n, int y, String ma, String m, int ml, int s, Owner o) {
    carName = n;
    yearModel = y;
    make = ma;
    model = m;
    speed = s;
    mileage = ml;
    carOwner = o;
    totalMileage += ml;
}

//---MUTATOR & ACCESSOR METHODS---

public void setName(String n) {
    carName = n;
}
public String getName() {
    return carName;
}

public void setYearModel(int y) {
    yearModel = y;
}
public int getYear() {
    return yearModel;
}

public void setMake(String ma) {
    make = ma;
}
public String getMake() {
    return make;
}

public void setModel(String m) {
    model = m;
}
public String getModel() {
    return model;
}

public void setSpeed(int s) {
    speed = s;
}
public int getSpeed() {
    return speed;
}

public void setMileage(int ml) {
    mileage = ml;
}
public int getMileage() {
    return mileage;
}

public void setOwnerName(Owner n) {
    carOwner = n;
}
public Owner getOwnerName() {
    return carOwner;
}

//---ACCELERATE()---

public void accelerate() {
    if(carOwner.getOwnType().equalsIgnoreCase("rash")) {
        speed += 10;
    } else {
        speed += 5;
    }
}
//---BRAKE---

public void brake() {
    if(speed == 0) {
        System.out.println("You are already stopped!");
    } else {
        speed -= 5;
    }//end if-else statement
}

//---COMPARE()---

public void compare() {

}

//---TOSTRING()---

public String toString() {
    String response = "";
    response += "\n\n"+ carName +" is a " + yearModel + " " + make + " " + model+ ".";
    response += "\nThe current mileage is " + mileage + " and current speed is " + speed;
    response += ".\n" + carOwner.toString();
    return response;
}

//---TOTALMILEAGE---

public static int getTotalMileage() {
    return totalMileage;
}

}//---END CLASS CAR
类所有者:

public class Owner {

private String ownName;
private String ownType;

public Owner (String ownerName, String ownerType) {
    ownName = ownerName;
    ownType = ownerType;
}

public void setOwnType(String ownerType) {
    ownType = ownerType;
}
public String getOwnType() {
    return ownType;
}

public void setOwnName(String ownerName) {
    ownName = ownerName;
}
public String getOwnName() {
    return ownName;
}

public String toString() {
    return ownName + " is the owner of the car and is a " + ownType + " driver.";
}


 }//end Owner class
这就是我的主要方法:

import java.util.*;
public class carDemo {

public static void main(String[] args) {
    Car car = null;
    Owner owner = null;
    Car car2 = null;
    Owner owner2 = null;
    String carName, make, model, ownerName, ownerType;
    int yearModel, speed, mileage;


    Scanner kb = new Scanner(System.in);

    for(int i = 1; i <= 2; i++) {
        System.out.print("Car Name: ");
        carName = kb.nextLine();

        System.out.print("Year: ");
        yearModel = kb.nextInt();
        kb.nextLine();

        System.out.print("Car Make: ");
        make = kb.nextLine();

        System.out.print("Car Model: ");
        model = kb.nextLine();

        System.out.print("Car Mileage: ");
        mileage = kb.nextInt();
        kb.nextLine();

        System.out.print("Car Speed: ");
        speed = kb.nextInt();
        kb.nextLine();

        System.out.print("Car owner name: ");
        ownerName = kb.nextLine();

        System.out.print("Car owner type: ");
        ownerType = kb.nextLine();

        if(i == 2) {
            owner2 = new Owner(ownerName, ownerType);
            car2 = new Car(carName, yearModel, make, model, mileage, speed, owner);
        } else {
        owner = new Owner(ownerName, ownerType);
        car = new Car(carName, yearModel, make, model, mileage, speed, owner);

        }

    } //end for loop

        System.out.print(car);
        System.out.print(car2);
        System.out.println("\n\nThe total mileage of both cars is " + Car.getTotalMileage());

        car.accelerate();
        car2.accelerate();
        System.out.println(car.getName() + " is going " +      car.getSpeed() + ".");
        System.out.println(car2.getName() + " is going " + car2.getSpeed() + ".");




} //end main

} //end carDemo
import java.util.*;
公共类卡片{
公共静态void main(字符串[]args){
Car=null;
Owner=null;
car2=null;
Owner-owner2=null;
字符串carName、make、model、ownerName、ownerType;
车型、速度、里程;
扫描仪kb=新扫描仪(System.in);

for(int i=1;i这两个
car
car2
在构造函数中获得相同的
owner
实例。其中一个实例应该是
owner2

car2 = new Car(carName, yearModel, make, model, mileage, speed, owner2);
                                                           // here ^

如果(i==2){owner2=新车主(ownerName,ownerType);car2=新车(carName,yearModel,make,model,Miledge,speed,owner2);//变化就在这里}我非常恼火,我自己都看不出来。谢谢你!谢谢你!我希望我有足够的分数来投票给你,善良的陌生人。