【问题标题】:How to create an attribute of a specific type in a new class in java?如何在java中的新类中创建特定类型的属性?
【发布时间】:2017-05-06 14:05:01
【问题描述】:

我是一名 Java 新手,我的任务是创建一个包含司机、乘客、座位等的出租车项目......

我被困在这一点上: 创建一个名为 Taxi 的类,它代表一辆出租车。因为每辆出租车都有司机,所以每个 Taxi 对象都应该有一个司机属性(Human 类型)。此外,出租车还可以搭载由 Human 对象代表的乘客。

我已经存在的代码:

public class Main {

public static void main(String[] args){

    Human human1 = new Human("Max", "Mustermann");

    // System.out.println(human1.getForename() + " " + human1.getName());
    System.out.println("This is " + human1 + ".");

    Taxi taxi1 = new Taxi();

    Human driver1 = new
}

}

public class Human {

private String name;
public String forename;

public Human(String forename, String name){
    this.name = name;
    this.forename = forename;
}

public String getName(){
    return name;
}

public String getForename(){
    return forename;
}

public String toString(){
    return this.forename + " " + this.name;
}
}




public class Taxi {


}

如何在出租车类中创建人类类型的司机和乘客?

谢谢。

【问题讨论】:

  • 我可以给你一个提示:如果你查看你的Human 类,它有一个name 类型为String 的属性。尝试从那里绘制连接。我不愿意公然为您提供听起来像家庭作业的解决方案。

标签: java class types attributes


【解决方案1】:

尝试类似:

public class Taxi {
    private Human driver;//Taxi has a driver
    public Taxi(Human driver) {
        this.driver = driver;
    }
}

// in main
Taxi taxi = new Taxi(human1);//pass that driver in constructor

【讨论】:

  • 好的,非常感谢,真的很有帮助!也许你可以帮我完成这个任务:每辆出租车最多可以运送四名乘客和司机。人类分别上出租车。 Taxi 类具有添加新乘客的方法 add(Human x)。如果出租车已满,则该方法不会添加乘客。相反,应将以下消息打印到控制台:“...”
【解决方案2】:

我认为您应该避免在课堂上混用 HumanTaxi 概念。
Human 实在是太宽泛了。这适用于生物学或哲学模型领域,不适用于出租车模型领域。
你有一些驱动程序?创建一个驱动程序类。
你有一些乘客吗?创建一个 Person 或一个 Passenger 类。

分离概念允许按领域解决问题。

然后在 Taxi 中提供方法来满足您的要求:

  • 有司机
  • 添加/删除乘客

例如:

public class Taxi {
    private Driver driver;
    private List<Passenger> passengers = new ArrayList<>();

    public Taxi(Driver driver) {
        this.driver = driver;
    }

    public addPassenger(Passenger passenger){
        this.passengers.add(passenger);
    }

    public removePassenger(Passenger passenger){
        this.passengers.remove(passenger);
    }
}

这里的 Taxi 实例只能由 Driver 实例“驱动”,并且它可能只“接受”Passenger 实例。
如果你只有Human 类,你会被卡住,因为任何人都可以开出租车。

如果司机也可能是乘客,您可以将乘客类替换为人员类。

【讨论】:

    猜你喜欢
    • 2022-01-10
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 2015-02-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多