Java 实现演示/测试程序

Java 实现演示/测试程序,java,methods,constructor,implementation,mutators,Java,Methods,Constructor,Implementation,Mutators,我有一个java编程课程的项目 说明是我们必须创建一个简单类和一个tester类,并且该类必须包含一个默认构造函数;具有三个参数(品牌、型号和价格)的参数化构造函数;调用getMake()的访问器方法返回make;调用getModel()的访问器方法返回模型;调用getPrice()的访问器方法返回价格;Mutator方法setMake(字符串newMake)设置make;使用Mutator方法setModel(String newModel)设置模型;和一个Mutator方法setPrice(

我有一个java编程课程的项目

说明是我们必须创建一个简单类和一个tester类,并且该类必须包含一个默认构造函数;具有三个参数(品牌、型号和价格)的参数化构造函数;调用getMake()的访问器方法返回make;调用getModel()的访问器方法返回模型;调用getPrice()的访问器方法返回价格;Mutator方法setMake(字符串newMake)设置make;使用Mutator方法setModel(String newModel)设置模型;和一个Mutator方法setPrice(double newPrice)来设置价格

我已经创建了我的类和测试程序,我的类编译得非常完美。当我试着运行它时,虽然我得到了一个错误,即没有main方法。现在,我按照我教授的例子来编写测试程序,我发现了几个错误。如果有人能给我一个指向正确方向的指针,我将不胜感激

我的问题是:如何实现我的测试程序?我需要创建一个zip文件吗?我试过这么做,但似乎帮不了什么忙

以下是我的课程代码:

public class Automobile
{ 
    private String make;    
    private String model;
    private double price;   

    public Automobile()
    {
        make = "Lexus2017";
        model = "RX";
    }

    public Automobile(String initMake, String initModel, double initPrice)
    {
        make = initMake;
        model = initModel;
        price = initPrice; 
    }

    public String getMake()
    {
        return make;
    }

    public String getModel()
    {
        return model;
    }

    public double getPrice()
    {
        return price;
    }   

    public void setMake(String newMake)
    {
        make = newMake;
    }

    public void setModel(String newModel)
    {
        model = newModel;
    }
另外,下面是我的tester类(有很多错误的类):


这是我第一次使用构造函数,而且我对Java非常陌生,因此对于任何明显的错误,我深表歉意。提前感谢您的时间和帮助。

第一个问题是您对构造函数的调用没有使用正确数量的参数,在Java(和大多数编程语言)中,您必须在一次调用中向方法/函数/构造函数提供所有必需的参数。您的代码的修复程序将使用:

Automobile car = new Automobile("Lexus 2017", "RX", 43020.0D);
另外,当您打印出cars信息时,您首先使用
实例
调用,然后使用
静态
调用,我不会详细介绍两者之间的区别,但基本上
实例
调用需要您实例化一个对象,而
静态
调用则不需要。解决此问题的方法是:

System.out.println("The car is a " + car.getMake() + ", the brand is " + car.getModel() + ", the price is $" + car.getPrice());
至于更改应使用的变量:

car.setMake("My New Car Make");
而不是:

Automobile.setMake("My New Car Make");

关于
静态
实例
之间的区别,您可以查看,并且。

您做得正确。通过使用
Automobile
类的
make
实例变量访问该方法

(旁注:make对于汽车来说是个坏名字,更确切地说是car1之类的)

现在,在使用Automobile.someMethod()的其他地方,这是不对的,因为您需要设置或获取类的一个实例上的数据,而不是整个类上的数据


然后,最后,您需要使用该类中的三个参数测试构造函数

构造函数调用中出现错误。 构造函数接受三个参数(make、model和price),但是当调用该方法时,只发送一个参数。这是一个错误。 默认情况下,Java类构造函数不接受任何参数(在您的例子中,这将是“newautomobile()”)。 要实现测试仪,您有两个选项。 首先,使用不带参数的构造函数创建汽车,然后设置参数:

Automobile auto = new Automobile();
auto.setMake("Lexus 2017");
auto.setModel("RX");
auto.setPrice(43020);
Automobile auto2 = new Automobile("Lexus 2017", "RX", 43020);
汽车制造=新车()

另一个选项是使用自己的生成器并传递参数:

Automobile auto = new Automobile();
auto.setMake("Lexus 2017");
auto.setModel("RX");
auto.setPrice(43020);
Automobile auto2 = new Automobile("Lexus 2017", "RX", 43020);
Automobile.java:

public class Automobile {
private String make;
private String model;
private double price;

public Automobile() {
}

public Automobile(String make, String model, double price) {
    this.make = make;
    this.model = model;
    this.price = price;
}

public String getMake() {
    return make;
}

public void setMake(String make) {
    this.make = make;
}

public String getModel() {
    return model;
}

public void setModel(String model) {
    this.model = model;
}

public double getPrice() {
    return price;
}

public void setPrice(double price) {
    this.price = price;
}
}
AutomobileTester.java:

public class AutomobileTester {

public static void main(String[] args) {

    Automobile auto = new Automobile();
    auto.setMake("Lexus 2017");
    auto.setModel("RX");
    auto.setPrice(43020);
    System.out.println("The car1 is " + auto.getMake() + " " + auto.getModel() + " " + auto.getPrice());

    Automobile auto2 = new Automobile("Lexus 2017", "RX", 43020);
    System.out.println("The car2 is " + auto2.getMake() + " " + auto2.getModel() + " " + auto2.getPrice());

}

}

三参数参数化构造函数(品牌、型号和价格)与新车(“雷克萨斯2017”)不匹配不要使用类名访问方法。。。这里有很多错误。你希望我们把它们都修好,为你做作业吗?@cricket_007不。那太荒谬了,我不会那样学任何东西。我只是想了解如何实现一个类,因为我已经读了三遍我的章节,听了课堂讲稿,但有些东西不适合我。我只想把我的代码放在上下文中。好的。我已经用眼前的问题来回答了。汽车类看起来okay@ScaryWombat那么,我会通过取消汽车年来解决这个问题吗?当你有了“汽车=新车”(“雷克萨斯2017”,“RX”,43020.0D);”,43020之后的D是否将价格视为双变量?另外,我的任务是使用实例变量,而不是静态变量。这要到下一章才会出现。那类名呢?这些可以吗?汽车和汽车司机?通过这些名称,程序是否知道如何实现该类?
d
d
字符表示该数字的类型为
double
,您可以找到有关这些类型标识符的更多信息。至于静态变量和实例变量的使用,我指出您使用的是静态调用,而您应该使用实例调用。至于名字,你真的可以使用你想要的任何东西,只要它们的类型完全相同,它应该能够正确地实例化类,一个可以帮助你。谢谢你花时间来帮助。我真的很感激,谢谢你。“make”是我的教授希望我们使用的实例变量,但我必须创建两个汽车对象,这样car1,car2会起作用吗?我会使用类似于
setMake(stringnewmake)
的东西吗?对每个实例变量都这样做吗?我不是说字符串make
,我是说
Automatible make=new Automobile(…)
,因为这是一辆有make的汽车,是的,但不是make本身不会有Automobile Automobile make=new();是多余的吗?另外,我知道当您希望方法中的参数等于实例变量时,可以使用此参数。你什么时候不想用?是的,那是个错误。它将是Automobile auto=新汽车();如果只想使用多个参数,可以实现多个构造函数。例如,如果您只想使用price:publ