Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类中的Java toString_Java - Fatal编程技术网

类中的Java toString

类中的Java toString,java,Java,我在下面发布的代码中遇到了找不到符号的错误。我试图初始化一辆轿车使用它的类和有toString功能后,但没有任何工作为我。请帮忙 class cars { String make; String model; String color; int year; double price; public String sedancClass(String initMake, String initModel, String initColor, int

我在下面发布的代码中遇到了找不到符号的错误。我试图初始化一辆轿车使用它的类和有toString功能后,但没有任何工作为我。请帮忙

class cars {
    String make;
    String model;
    String color;
    int year;
    double price;

    public String sedancClass(String initMake, String initModel, String initColor, int initYear, double initPrice) {
        make = initMake;
        model = initModel;
        color = initColor;
        year = initYear;
        price = initPrice;
        String name = "Sedan";
        String main = (color + " " + make + " " + model + " " + name + " " + year + " costs $" + price);
        return main;

    }





}

public class autoPark {
    public static void main(String args[]) {
        cars sedan1;
        sedan1 = new sedanClass("Ford" , "Model-1" , "white" , 2015, 20000);
    }
}

根据你提供的,我认为这就是你正在努力做的

等级车{
串制;
弦模型;
字符串颜色;
国际年;
双倍价格;
//参数化构造函数
公共汽车(String initMake、String initModel、String initColor、int initYear、double initPrice){
make=initMake;
模型=初始模型;
颜色=初始颜色;
年份=初始年份;
价格=初始价格;
}
@凌驾
公共字符串toString(){
String name=“Sedan”;
字符串main=(颜色+“”+制造+“”+型号+“”+名称+“”+年份+“成本$”+价格);
回水总管;
}
}
公营自动停车场{
公共静态void main(字符串参数[]){
cars sedan1;//按名称sedan1声明cars对象
sedan1=新车(“福特”、“1型”、“白色”,2015,20000);//使用cars构造函数初始化sedan1
System.out.println(sedan1);//打印sedan1以调用toString()方法
}
}
为什么我们使用@Override注释 重写方法时使用@Override注释被视为java编码的最佳实践,因为有以下两个优点:

  • 若程序员在重写时犯了任何错误,比如错误的方法名、错误的参数类型,那个么就会出现编译时错误。通过使用此注释,可以指示编译器重写此方法。如果不使用注释,则子类方法将在子类中表现为新方法(而不是重写方法)

  • 它提高了代码的可读性。因此,如果您更改重写方法的签名,那么重写特定方法的所有子类都将抛出编译错误,这将最终帮助您更改子类中的签名。如果您的应用程序中有很多类,那么当您更改方法的签名时,此注释将真正帮助您识别需要更改的类


  • 根据您编写的内容,sedancClass是一个方法,而不是构造函数,这意味着您不应该使用“new”调用它,预期的返回类型是String,而不是cars。你可以写字符串sedan1=sedanClass(“福特”,“1型”,“白色”,2015,20000)好的,就几个问题,@override做什么?当我尝试在主cars类中添加更多类时,它会显示无效的方法声明,需要返回类型。我使用另一辆公共SUV(xx,xxx,xx)按照与您在公共汽车上相同的步骤操作,但它不断给出错误。我明白了,谢谢您的回答。还有一件事,当我用你的确切步骤创建另一个名为SUV的类时,为什么它需要一个返回类型,以及如何为该构造函数添加toString?很抱歉,你说的不是很清楚。如果你能给我看一下代码,我会更有帮助的。这里有一个代码链接,我试图在车内创建更多的类,还有更多的toString。请记住,在一个类中,不能创建多个具有相同签名的方法。在本例中,您创建了多个导致问题的
    toString()
    方法。要解决此问题,应为每种车辆类型创建单独的类,并创建
    toString()
    方法。为了提高代码的质量,我建议您在java中对继承进行同样的处理。