Java 为什么类别Car会存储对象Car和car2的正确信息,但类别所有者赢了';t存储对象所有者的信息2?
我对Java还不熟悉。对不起,时间太长了。下面是到目前为止我的代码的输出带有**的部分是我遇到问题的地方。我应该比较两个汽车物体的速度,但每个车主物体不是“安全”就是“鲁莽”的司机。如果他们鲁莽,当他们加速时,他们会加速10。如果他们是安全的,他们加速5。然而,到目前为止,该方面正在工作,只有第一个所有者对象将存储信息。因此,无论第一个所有者对象是什么(安全/轻率),它们都将是。我的汽车对象不会发生这种情况,因为每个单独的对象都在存储正确的信息,这正是我遇到的困难。有人能帮我找出原因吗Java 为什么类别Car会存储对象Car和car2的正确信息,但类别所有者赢了';t存储对象所有者的信息2?,java,class,methods,Java,Class,Methods,我对Java还不熟悉。对不起,时间太长了。下面是到目前为止我的代码的输出带有**的部分是我遇到问题的地方。我应该比较两个汽车物体的速度,但每个车主物体不是“安全”就是“鲁莽”的司机。如果他们鲁莽,当他们加速时,他们会加速10。如果他们是安全的,他们加速5。然而,到目前为止,该方面正在工作,只有第一个所有者对象将存储信息。因此,无论第一个所有者对象是什么(安全/轻率),它们都将是。我的汽车对象不会发生这种情况,因为每个单独的对象都在存储正确的信息,这正是我遇到的困难。有人能帮我找出原因吗 Car
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);//变化就在这里}我非常恼火,我自己都看不出来。谢谢你!谢谢你!我希望我有足够的分数来投票给你,善良的陌生人。