我的Java作业有问题,无法解决。我的目标是创建一个名为Taxi
的类,它表示出租车。因为每个出租车都有驾驶员,所以每个Taxi
对象都应具有一个driver
属性(类型为Human
)。此外,Taxi
可以有也由Human
对象代表的乘客。
通过构造函数方法创建Taxi
时,必须为其分配驱动程序。因此,类Taxi
需要一个带有类型为Human
的参数的构造函数。您可以使用方法Taxi
来询问getDriverName()
的驱动程序的名称,该方法为您为驱动程序创建的Human
对象的字符串表示形式。
我已经完成了上面的大部分工作,但是在getDriverName()
类中遇到了方法Taxi
的问题,因此,如果我这样创建它,那么就不可能在“ main”中使用它。
我已经在Human
中创建了类Taxi
的全局变量:
private Human driver; //made a global variable of Human class
然后我在Taxi
类中构造了一个构造函数,以便在main中可以在main中创建Taxi
的对象:
public Taxi(Human driver) { // create a constructor of Taxi class
this.driver = driver;
}
但是我可以使用方法getDrivername()
解决问题。令人惊讶的是,如果我将它放在Human
类中,我可以调用它并在main中使用它。
public String getDrivername() {
return driver.getName()+driver.getForename();
}
这里有大量代码,因为我什至都不知道我的错误可能在哪里:
public class Human {
String forename,name;
public String getName(){
return name;
}
public String getForename(){
return forename;
}
public Human(String fona, String na) {
this.forename=fona;
this.name=na;
}
@Override
public String toString(){
return this.name + this.forename;
}
}
import java.util.ArrayList;
public class Taxi {
private Human driver; //made a global variable of Human class
public Taxi(Human driver) { // create a constructor of Taxi class
this.driver = driver;
}
public String getDrivername() { // method should return a name and forename of the driver
return driver.getName()+driver.getForename();
}
public static void main (String[]args){
Human driver = new Human("Juergen", "Staub"); //here I create objects with the constructor from Human class
Human h1 = new Human("Andrea", "Bora");
Human h2 = new Human("Franzi", "Ada");
Human h3 = new Human("Leah", "Posh");
Human h4 = new Human("Susi", "Fresh");
Human h5 = new Human("Lucky", "Fuke");
Taxi aTaxi=new Taxi(driver);
ArrayList <Human> taxi = new ArrayList <Human> (4); //here I need to
if (taxi.size()==0) {
System.out.println("This is the taxi of " + driver.getDrivername() +". He takes nobody along.");
}
taxi.add(h1);
if (taxi.size()==1) {
System.out.println("This is the taxi of " + driver.getDriverName() +". He takes "+h1.getName()+ " along.");
}
taxi.add(h2);
taxi.add(h3);
taxi.add(h4);
if (taxi.size()==4) {
System.out.println("This is the taxi of " + driver.getDriverName() +". He takes "+ h1.getName()+","+ h2.getName()+ ","+ h3.getName()+","+ h4.getName()+" along.");
}
taxi.add(h5);
if (taxi.size()==5) {
System.out.println("We are sorry, "+ h5.getName() +". The taxi is full.");
}
taxi.clear();
System.out.println("This is the car of " + driver.getDriverName());
//for (Human counter:taxi){
// System.out.println(counter + " gets in");
//}
System.out.println("Now car has " + taxi.size() + "places to seat");
}
}
请帮助我解决问题。
当然,我应该做我自己的家庭作业,但是浪费了很多时间,我最大的努力还不够。