Java教程19—Java中的关联关系

Java中的关联关系

在本文中,我们将讨论Java中的关联。
关联通过其对象建立两个单独类之间的关系。
这种关系可以是一对一,一对多,多对一,多对多。

关联的例子:

class CarClass{
    String carName;
    int carId;
    CarClass(String name, int id)
    {
        this.carName = name;
        this.carId = id;
    }
}
class Driver extends CarClass{
    String driverName;
    Driver(String name, String cname, int cid){
        super(cname, cid);
        this.driverName=name;
    }
}
class TransportCompany{
    public static void main(String args[])
    {
        Driver obj = new Driver("Andy", "Ford", 9988);
        System.out.println(obj.driverName+" is a driver of car Id: "+obj.carId);
    }

程序输出:

        Andy is a driver of car Id: 9988

在上面的例子中,两个类之间存在一对一的关系:CarClass和Driver。
这两个类代表两个独立的实体。


关联与聚合与组合

让我们讨论关联,聚合和组合之间的区别:
尽管这三个都是相关的术语,但它们在两个类的关联方式上存在一些主要差异。

  • 关联是两个独立类之间的关系,关联可以是任何类型,例如一对一,一对多。
    它连接两个完全独立的实体。
  • 聚合是一种特殊的关联形式,它是类(或实体)之间的单向单向关系,例如Wallet和Money类。
    钱包有钱,但钱不需要钱包,所以它是一个单向的关系。
    在这种关系中,如果其他条目结束,则两个条目都可以存活。
    在我们的示例中,如果Wallet类不存在,则并不意味着Money类不存在。
  • 组合是一种受限制的聚合形式,其中两个实体(或者您可以说类)高度依赖于彼此。
    例如,人类和心脏。人类需要心脏生存,心脏需要人体才能生存。
    换句话说,当类(实体)彼此依赖并且它们的寿命相同时(如果一个人死了,那么另一个也是),那么它就是一个组合。
    如果没有人类,心脏就没有意义。

原文地址:

https://beginnersbook.com/2013/05/association/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值