实施演示/测试程序

时间:2016-10-24 00:31:38

标签: java methods constructor implementation mutators

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

指令是我们必须创建一个简单的类和一个测试器类,并且该类必须包含一个Default构造函数;参数化构造函数有三个参数(品牌,型号和价格); Accessor方法调用getMake()来返回make; Accessor方法调用getModel()来返回模型; Accessor方法调用getPrice()来返回价格; Mutator方法setMake(String newMake)设置make; Mutator方法setModel(String newModel)设置模型;和一个Mutator方法setPrice(double newPrice)来设置价格..

我已经创建了我的课程和测试人员程序,我的课程编译完美。 当我尝试运行它时,虽然得到的错误是没有主要方法。现在,我按照我教授的测试程序示例,我得到了几个错误。如果有人能给我一个指向正确方向的指针,我将不胜感激。

我的问题是:如何实施我的测试程序?我是否需要创建一个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;
    }

此外,以下是我的测试人员类(有很多错误的人):

public class AutomobileTester
{
    public static void main(String[] args)
    {
        Automobile make = new Automobile("Lexus 2017");
        System.out.println("The car is " + make.getMake());

        Automobile model = new Automobile("RX");
        System.out.println("The car is " + Automobile.getModel());

        Automobile price = new Automobile("43020"); 
        System.out.println("The car is " + Automobile.getPrice());  

        // Use the mutator to change the make variable
        Automobile.setMake("Lexus 2017");
        System.out.println("The car is " + backDoor.getState());

        // Use the mutator to change the model variable
        Automobile.setModel("RX");
        System.out.println("The car is called " + backDoor.getName());

        Automobile.setPrice("43020");
        System.out.println("The car is " + price.getPrice());
    }
}

这是我第一次使用构造函数,而且我对Java很新,所以我很抱歉任何明显的错误。提前感谢您的时间和帮助。

3 个答案:

答案 0 :(得分:1)

最初的问题之一是你没有使用适当数量的参数来调用构造函数,在Java(和大多数编程语言)中你必须为方法/函数/构造函数提供所有必需的参数在一个电话中。您的代码的修复方法是使用:

Automobile car = new Automobile("Lexus 2017", "RX", 43020.0D);

此外,当您打印出汽车信息时,您首先使用instance来电,然后使用static来电,我不太了解两者之间的差异,但基本上是instance调用要求您在static没有实例化对象时进行实例化。解决这个问题的方法是:

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");

对于staticinstance之间的差异,您可以查看hereherehere

答案 1 :(得分:0)

你这样做了。您使用make类的Automobile实例变量访问了该方法。

(旁注:make是汽车实例的坏名称,而不是称之为car1,或其他东西)

Automobile make = new Automobile("Lexus 2017");
System.out.println("The car is " + make.getMake());

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

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

答案 2 :(得分:0)

构造函数调用中有错误。 你的构造函数有三个参数(make,model和price)但是当你调用方法时只发送一个。那是一个错误。 默认情况下,Java类构造函数不带参数(在您的情况下,这将是" new Automobile()")。 要实现测试仪,您有两种选择。 首先,使用不带参数的构造函数创建汽车,然后设置参数:

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());

}

}