所以我正在学习如何用UML建模。我目前正在学习协会。我想我知道它们是什么,但需要澄清一下。
1)由于关联是2个(或更多?)类之间的链接,因此认为类的对象将进行交互是正确的,因为对象通常与其他类交互吗?
2)在双向关联中,两个类都知道彼此之间的关系。例如,一个类Flight和一个类Plane。 Flight的角色名称为“assignedFlights”,多重性值为0 ...... *。 Plane的角色名称为“associatedFlight”,多重性值为0..1。说Flight的对象可以与Plane类有0或1个关联,而Plane对象可以与Flight类有0到无限的关联吗?与一个类“关联”真正意味着什么?他们的意思是:
例如。在平面类中,有一个名为plane();
的方法,在飞行课中有一个名为flight();
的方法。
class Flight(){
Plane planeObject = new Plane();
planeObject.plane();
// Only one or zero is allowed as a flight instance can only be associated with 1 or 0 planes.
}
class Plane{
Flight flightObject = new Flight();
Flight flightObject2 = new Flight();
Flight flightObjet3 = new Flight();
flightObject.flight();
flightObject2.flight();
flightObject3.flight();
//And so one as a plane can have 0 to infinite associations
}
3)同一类型的问题适用于单向关联。
有人可以用非专业术语和Java语言向我解释我在Java中的理解。
答案 0 :(得分:0)
Java中的关联归结为关联类的类成员。所以在某种程度上,你在一个例子中就有了一对多的关联。这是我改变它的方式:
class Flight(){
Plane planeObject;
// one plane can be associated with a flight
}
class Plane{
List<Flight> flights;
//A plane can be associated with multiple flights
}
箭头方向表示导航。这意味着,从一个对象到另一个对象的导航性。在双向关联中,它归结为两个彼此引用的对象。在上面的示例中,Plane
可以导航到任何flights
,任何Flight
都可以使用他们拥有的班级成员导航到关联的Plane
。
在单向中,只有一个对象可以导航到关联的对象,反之亦然。
以下是单向的示例,您可以从Plane
导航到Flight
。但是从Flight
对象,您无法导航到Plane
。
class Flight(){
Plane planeObject;
// one plane can be associated with a flight
}
class Plane{
//plane related stuff here
}