当前位置: 首页 > 知识库问答 >
问题:

在本例中如何使用toString?

松涵容
2023-03-14

目前正在做一些家庭作业并遇到麻烦——我不确定如何正确使用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();

    }

}

共有3个答案

胡禄
2023-03-14

我将在车辆上实现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;
    }
}
祖翰音
2023-03-14

使用toString()方法打印所需的输出,将整数值转换为String。

在这句话中,老师指的是Integer.toString(),参见intger类。很可能,重载Integer.toString(int i)

有几种方法可以将整数转换为字符串,其中一些似乎更简单。但老师可能有理由要求这种特殊的方法。

程瑞
2023-03-14

这里有几个问题。第一,你的问题说轮号和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版本,请参见