当前正在做一些作业,并且遇到了麻烦-我不确定如何正确使用toString。这是作业问题:
创建一个名为Vehicle的类,该类充当车辆类型的超类。 Vehicle类包含车轮数和每加仑平均英里数的私有变量。 Vehicle类还包含一个构造函数,该构造函数具有用于表示车轮数量和每加仑平均英里数的整数参数,以及一个display()方法,该方法使用toString()方法打印所需的输出以将整数值转换为String。
创建两个子类Car和MotorCycle,它们扩展了Vehicle类。 每个子类都包含一个构造函数,该构造函数接受“每加仑英里数”值作为参数,并强制将车轮数设置为适当的值,例如对于MotorCycle为2,对于Car为4。使用超类构造函数来设置wheel和mpg数据字段(使用super关键字)。
编写一个UseVehicle类以实例化每个子类的一个对象并显示该对象的值。 将文件另存为Vehicle.java,Car.java,MotorCycle.java和UseVehicle.java
public class Vehicle {
protected int wheelnumber;
protected int mpg;
Vehicle (int wheelnum, int aMpg) {
wheelnumber = wheelnum;
mpg = aMpg;
}
public void display() {
System.out.println("Wheels: " + toString(wheelnumber) + " Mpg: " + toString(mpg));
}
}
public class Car extends Vehicle{
Car (int CarMPG) {
super(4, CarMPG);
}
}
public class Motorcycle extends Vehicle{
Motorcycle (int MotorcycleMPG) {
super(2, MotorcycleMPG);
}
}
public class UseVehicle {
public static void main(String[] args) {
Car Car1 = new Car(30);
Motorcycle Motorcycle2 = new Motorcycle(60);
System.out.print("Car--> ");
Car1.display();
System.out.print("Motorcycle—> ");
Motorcycle2.display();
}
}
答案 0 :(得分:2)
使用toString()方法打印所需的输出,以将整数值转换为String。
在这句话中,老师指的是Integer.toString()
,请参见Integer
课堂。 the overload Integer.toString(int i)
。
有alternatives of converting an integer to a string,其中一些似乎更简单。但是老师可能有理由要求这种特殊方法。
答案 1 :(得分:2)
这里有几个问题。 一,您的问题是,转盘号和mpg应该是私有的。 其次,数据类型应为Integer。希望下面能解决您的问题。
public class Vehicle {
//should be private as per question
private Integer wheelnumber;
private Integer mpg;
Vehicle (int wheelnum, int aMpg) {
wheelnumber = wheelnum;
mpg = aMpg;
}
public void display() {
System.out.println("Wheels: " + wheelnumber.toString + " Mpg: " + mpg.toString);
}
}
现在,要详细说明,方法toString()是在Java Object类中定义的,默认情况下定义的任何类都会对其进行扩展。
您使用的数据类型“ int”是一个primitive data type(直接从C语言获得-简单但不是面向对象的方法),它不会扩展Java Object类。因此,不能将toString()方法与原始数据类型的任何实例一起使用。
“ Integer”数据类型是Java API中定义的类,它扩展了Object类并在其中定义了toString()方法。因此,可以将toString()方法与此类的任何实例一起使用。
话虽如此,如果您绝对必须将“ int”变量转换为String,我建议您执行以下操作:
int i = 10;
System.out.println("Value of i: " + Integer.toString(i));
请注意,可以很容易地将int或Integer转换为字符串,而无需调用toString()方法,因为Java与字符串连接时会自动为您执行此操作-
int p = 10;
Integer q = new Integer(20);
System.out.println("value of p:" + p + ", q:" + q);
但是,这不是常规方式,我想这不是您的老师在这项作业中想要的。
答案 2 :(得分:0)
我会在Vehical上实现toString()
public class Vehicle {
protected int wheelnumber;
protected int mpg;
Vehicle (int wheelnum, int aMpg) {
this.wheelnumber = wheelnum;
this.mpg = aMpg;
}
public void display() {
System.out.println(this.toString());
}
@Override
public String toString() {
return "Wheels: " + this.wheelnumber + " Mpg: " + this.mpg;
}
}