我有一个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很新,所以我很抱歉任何明显的错误。提前感谢您的时间和帮助。
答案 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");
答案 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());
}
}