目前正在做一些家庭作业并遇到麻烦——我不确定如何正确使用toString。以下是家庭作业问题:
创建一个名为车辆的类,作为车辆类型的超类。车辆类包含用于车轮数量和每加仑平均里程数的私有变量。车辆类还包含一个构造函数,其中包含用于车轮数量和每加仑平均里程数的整数参数,以及一个显示()方法,该方法使用toString()方法打印所需的输出以将整数值转换为String。
创建两个子类Car和MotorCycle,它们扩展了Vehicle类。每个子类都包含一个构造函数,该构造函数接受每加仑英里数值作为参数,并将车轮数强制为适当的值—摩托车为2,汽车为4。使用超类构造函数设置车轮和mpg数据字段(使用super关键字)。
编写一个UseVehicle类来实例化每个子类的一个对象并显示该对象的值。将文件另存为车辆。爪哇,汽车。爪哇,摩托车。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();
}
}
我将在车辆上实现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;
}
}
使用toString()方法打印所需的输出,将整数值转换为String。
在这句话中,老师指的是Integer.toString()
,参见intger
类。很可能,重载Integer.toString(int i)
。
有几种方法可以将整数转换为字符串,其中一些似乎更简单。但老师可能有理由要求这种特殊的方法。
这里有几个问题。第一,你的问题说轮号和mpg应该是私有的。第二,数据类型应该是整数。希望下面能解决你的问题。
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对象类中定义的,您默认定义的任何类都会扩展它。
您使用的数据类型-"int"是一种原始数据类型(直接取自C-简单但不面向对象的方法),它不扩展JavaObject类。因此,您不能将toString()方法用于原始数据类型的任何实例。
而“整数”数据类型是在JavaAPI中定义的类,它扩展了Object类并在其中定义了toString()方法。因此,您可以将toString()方法用于此类的任何实例。
话虽如此,如果您必须将“int”变量转换为字符串,我建议您执行以下操作:
int i = 10;
System.out.println("Value of i: " + Integer.toString(i));
请注意,int或intger可以很容易地转换为字符串,而无需调用toString()方法,因为当您将Java方法与String连接时,它会自动为您执行此操作-类似于这样:
int p = 10;
Integer q = new Integer(20);
System.out.println("value of p:" + p + ", q:" + q);
但是,这不是传统的方法,我想这不是你的老师想要的作业。
我试图从一个圆返回一个点。扩展shape类的java类。目前我一直收到一个空指针异常。我需要使用继承的getPoints()重新运行中心点;方法,但内置方法返回一个数组,并且要从圆返回的值不是数组。如果不使用单独的返回方法,我将如何返回中心点。我的形体课如下 我的circle课程如下
我想在上面运行代码。但在下面显示消息不起作用。 预测错误(拟合,h=52):未找到对象“拟合” 我的意图是...如果第一个函数有错误(
如果使用隐式和显式等待器,将发生以下错误:
为了访问一个元素,我使用了以下命令如何通过使用xpath在javascript中使用与在out套件中仅使用xpath相同的功能
我是一个完整的打字初学者,我想知道是否有可能在打字中使用ES6promise,以及我必须做什么才能让他们工作。我正在运行节点0.11.14,在编译过程中得到一个错误“不能找到名称'promise'”
问题内容: Python 3.4添加了使用静态方法定义函数重载的功能。本质上是文档中的示例: 在最纯粹的形式上,实现依赖于第一个参数来标识类型,因此很难将此功能扩展到实例方法。 有人对如何使用(或使用jerry-rig)此功能使其与实例方法一起使用有任何建议吗? 问题答案: 更新: 从Python 3.8开始,允许对方法,类方法,抽象方法和静态方法进行单次调度。 对于较旧的Python版本,请参见