Java 实现演示/测试程序
我有一个java编程课程的项目 说明是我们必须创建一个简单类和一个tester类,并且该类必须包含一个默认构造函数;具有三个参数(品牌、型号和价格)的参数化构造函数;调用getMake()的访问器方法返回make;调用getModel()的访问器方法返回模型;调用getPrice()的访问器方法返回价格;Mutator方法setMake(字符串newMake)设置make;使用Mutator方法setModel(String newModel)设置模型;和一个Mutator方法setPrice(double newPrice)来设置价格 我已经创建了我的类和测试程序,我的类编译得非常完美。当我试着运行它时,虽然我得到了一个错误,即没有main方法。现在,我按照我教授的例子来编写测试程序,我发现了几个错误。如果有人能给我一个指向正确方向的指针,我将不胜感激 我的问题是:如何实现我的测试程序?我需要创建一个zip文件吗?我试过这么做,但似乎帮不了什么忙 以下是我的课程代码: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(
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