Java协会问题

时间:2017-03-12 17:47:42

标签: java associations uml

发现Java过于复杂的语言。如果我的生活依赖于它,我无法弄清楚这种联想。我特意卡在Cab对象+拾取器(骑手:乘客):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;
    }

}

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

3 个答案:

答案 0 :(得分:0)

按照说明书中的说明:定义输入属性

private Passenger passenger;

之类的(我没有Java人)。

答案 1 :(得分:0)

如果要在两个类之间建立关联,通常会使用实例变量。在这种情况下,Cab可以包含Passenger。所以你想在Cab类中拥有一个能够容纳Passenger的实例变量。这可以这样做:

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

在UML中显示的pickUp方法中,您希望填充此变量,例如: G。像那样(不幸的是,没有规范该方法应返回的String):

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

调用方法pickUp后,您可以通过其实例变量访问cab中的乘客。

我希望我能帮到你!

答案 2 :(得分:0)

通常,如果你有一个属性,你有getter / setter专用于设置和获取属性。

如果您有一个带有属性类型参数的方法(除了setter),那么这并不意味着该参数将设置该属性。

所以对我来说,删除方法拾取并在乘客上定义一个吸气剂和设定器可能更容易。