Java类之间的关系

主要的6个关系:依赖关联聚合组合继承实现。他们的耦合度依次增长,依赖<关联<聚合<组合<继承<实现。关联、聚合、组合3个关系只是语义上的区别,聚合、组合是一种强关联关系,在Java代码实现上是相同的。

1 依赖关系

一个类依赖于另一个类的定义,一个类A的方法操作另一个类B的对象。在Java中表现为:类的方法局部变量、类的方法形参、对类的静态方法调用。如下,A依赖于B:
A依赖于B

class B{   
    public static void run(){   
        ……
    }   
}   
     
class A{   
    //使用形参方式发生依赖关系   
    public void method1(B a){   
        B.run();   
    }   
    //使用局部变量发生依赖关系   
    public void method2(){   
        B a= new B();   
        a.run();   
    }   
    //使用静态变量发生依赖关系   
    public void method13(){   
        B.run();   
    }   
}  

2 关联关系

类与类之间联接,使一个类A知道另一个类B的属性、方法。Java中表现为:类的成员变量单向关联:类A中使用了类B作为成员变量;(不建议使用)双向关联:类A中使用了类B作为成员变量,类B中也使用了类A作为成员变量。

单向关联:
A关联于B
双向关联:
AB双向关联

class B{   
    ……  
}   
     
class A{   
// 使用成员变量实现关联关系
    B b;
    ……
}  

3 聚合关系

聚合是整体-个体之间的关系,类A包含类B。整体和个体可以分离,有各自的生命周期。 个体可以属于多个对象,可以被多个对象共享,所以成员变量——个体——使用setter赋值。 关联关系两个类处于同一层次上,聚合、组合关系两个类处于不同层次上。
A聚合于B

class A{
	B b;
	public vid setB(B b){
		this.b=b;
	}
	……
}
4 组合关系

组合是整体-部分之间的关系。“整体”管理“部分”的生命周期,同生共死(如手和身体,手是身体的一部分),不可分离。“部分”单独存在时无意义。“部分”对象同一时刻只能和一个“整体”对象形成组合关系。 “部分”对象使用“整体”类的构造函数赋值。
A组合B

class A{
	B b;
	public A(B b){
		this.b=b;
	}
	……
}
5 继承关系(extends)

A继承B

class A extends B{
	……
}
6 实现关系(implements)

A实现B

class A implements B{
	……
}

END

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值