gpt4 book ai didi

java - 类调用其他类

转载 作者:行者123 更新时间:2023-12-02 07:43:15 24 4
gpt4 key购买 nike

我有一些类(class)。

在外观中,我有一个启动类,它被实例化并从那里调用所有方法。

然后我有一个汽车类、所有者类、车库类和 parking 位类

所以...Starter 具有 Car 属性。
汽车有一个所有者属性。
汽车还具有车库属性。
车库有 ParkingSpace 属性

Stater 类有一个 getOwner() 方法,该方法调用 Car 类中的 getOwner() 方法

private Car car;
public Starter (String name){
car = new Car(new Owner(name);
}

上面的第三行实例化了 Car 和 Owner 对象。现在我可以调用各个类的各种方法。

我现在在 Starter Class 中有一个 addParking() 方法。Starter 类中的 addParking() 调用 Car 类中的 addParking() ,而 Car 类又调用 GarageClass 中的 addParking() ,然后将 parking 位添加到存储在 Garage 类中的集合中。

我无法理解的是...我现在如何实例化 Garage 对象以及实例化它的内容?我的 addParking() 方法适用于 Car,因为我有当我得到所有者时已经实例化了这个。所以我现在不能去...

Car car = new Car(new Grarage(new ParkingSpace(int x, int y, int z)));

或者我可以吗?这会创建一个全新的 Car 对象吗?

最佳答案

how do I now instantiate the Garage object and in terms of what do I instantiate it?

通常,当我遇到此类问题时,我会回归自然和我的领域模型。Garage 类应该只与一个 parking 位耦合,因为 Garage 必须有一个 parking 位,但它可能没有 Car 或 in它(还)。

public class Garage{
public Garage(ParkingSpace parkingSpace){
//...
}
}

现在,您可以将汽车停放在这个车库中,因此车库有一个方法是有意义的:

public void park(Car car){
}

现在可以通过以下方式链接这些代码:

Car car = new Car(owner);
Garage garage = new Garage(new ParkingSpace(...));
garage.park(car);

Wont this create a whole new Car object?

是的,Car car = new Car(new Grarage(new ParkingSpace(int x, int y, int z))); 将创建一个新的Car车库ParkingSpace

关于java - 类调用其他类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11299938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com