【问题标题】:Java association problemsJava关联问题
【发布时间】:2017-03-12 17:47:42
【问题描述】:

发现 Java 是一种过于复杂的语言。如果我的生活依赖于它,我无法弄清楚这个关联的事情。我特别卡在 Cab 对象 +pickup(rider:Passenger): String 上。我知道它会返回一个字符串,这是我到目前为止的代码。

UML Diagram

package cabsimulation;


public class Cab {
private double companyTotalFare;
private double rate;
private double taxiTotalFare;
private int tripCounter;
private int cabID;

public Cab(int cabID){}

    public double dropOff(int minutes){
        return minutes*rate;
    }

    public double endOfShift(){
        double sumOfFares = taxiTotalFare + companyTotalFare;
        return sumOfFares;
    }
    //public String report();
    public double getRate(){
        return rate;
    }

    public void setRate(double cabRate){
        this.rate = cabRate;
    }
}

public class Passenger {
    private final double weight;
    private final boolean inFrontSeat;

    public Passenger (double weight, boolean front){
        this.weight = weight;
        this.inFrontSeat = front;
    }
    public double getWeight(){
        return weight;
    }

    public boolean isInFrontSeat(){
        return inFrontSeat;
    }

}

如何编写(编程)这两个对象之间的关联?

【问题讨论】:

  • 欢迎来到 Stack Overflow!请拿起tour,环顾四周,并通读help center,尤其是How do I ask a good question?What topics can I ask about here?。从第二个链接:“要求家庭作业帮助的问题必须包括您迄今为止为解决问题所做的工作的摘要,以及您在解决问题时遇到的困难的描述。”您还必须提供您的问题作为文本,而不是作为链接。

标签: java associations uml


【解决方案1】:

如您的说明中所述:定义类型化属性

private Passenger passenger;

或类似的东西(我不是 Java 人)。

【讨论】:

    【解决方案2】:

    当您想在两个类之间建立关联时,通常会使用实例变量。在这种情况下,Cab 可以包含Passenger。所以你想在Cab 类中有一个实例变量,它能够保存Passenger。可以这样做:

    public class Cab {
        Passenger passenger;
        //...
    }
    

    在 UML 所示的pickUp 方法中,您要填充此变量,例如。 G。像那样(不幸的是,没有规范该方法应该返回什么字符串):

    public class Cab {
        Passenger passenger;
        //...
        public String pickUp(Passenger rider) {
            this.passenger = rider;
            return "something";
        }
    }
    

    调用pickUp方法后,可以通过实例变量访问驾驶室中的乘客。

    希望能帮到你!

    【讨论】:

      【解决方案3】:

      通常,如果您有一个属性,那么您就有专门用于设置和获取该属性的 getter/setter。

      如果你有一个方法(不是setter)带有一个属性类型的参数,这并不意味着该参数会设置该属性。

      所以对我来说,删除方法拾取并在乘客上定义 getter 和 setter 会更容易。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-06-27
        • 1970-01-01
        • 1970-01-01
        • 2011-12-31
        • 2013-12-01
        • 2018-03-08
        相关资源
        最近更新 更多