zoukankan      html  css  js  c++  java
  • 类与类之间的关系--泛化,关联,依赖,实现

             类,对象是面向对象的基础,类与类之间的关系是面向对象不可或缺的一部分。以下将从类的关系定义,UML中的符号表示,代码实现三方面介绍类与类之间的关系。
            1、泛化(Generalization):也成为继承关系。

    指一个类(子类或者子接口)继承另外一个类(父类或者父接口)的功能。

    并能够添加自己的功能。在程序程序中用keywordextends明白标识,在UML设计中用空三角和实线表示。从子类指向父类。或者子接口指向父接口。

    如图             

    代码:

    public class Cat {
    
    	public Cat(){
    
    	}
    	
    
    	public void Eat(){
    
    	}
    
    	public void Run(){
    
    	}
    
    	public void Walk(){
    
    	}
    
    }
    子类演示样例
    public class WhiteCat extends Cat {
    
    	public WhiteCat(){
    
    	}
    	
    	public void Eat(){
    
    	}
    
    	public void Run(){
    
    	}
    
    	public void Walk(){
    
    	}
    
    }

             2、实现(Realize) 是指 一个class 实现interface接口的功能,用keywordimplements标识。在UML设计中用一条带空心箭头的虚线表示,箭头指向接口。

    如图                

    代码:

    public interface Iaction {
    
    	public void drink();
    
    	public void eat();
    
    }
    public class dog implements Iaction {
    
    	public dog(){
    
    	}
    
    	public void finalize() throws Throwable {
    
    	}
    
    	public void drink(){
    
    	}
    
    	public void eat(){
    
    	}
    
    }
    

           3、依赖(Dependency)是指一个类A使用到了还有一个类B,而这样的使用关系是具有偶然性、暂时性。

    可是类B的变化会影响到类A。表如今代码层面,为类B作为參数被类A在某个方法中使用。在UML类图设计中用由类A指向类B的带箭头虚线表示。

     如图                    

            4、关联关系  关联体现的是两个类之间语义级别的一种强依赖关系,比方我和我的朋友,这样的关系比依赖更强、不存在依赖关系的偶然性、关系也不是暂时性的。通常是长期性的。并且两方关系通常是平等的。

    关联能够单向的也能够是双向的。表如今代码层面,为被关联类B以类的属性形式出如今关联类A中,也可能是关联类A引用了一个类型为关联类B的全局变量。在UML类图设计中。关联关系用有关联类A指向被关联类B的带箭头实线表示。在关联的两端能够标注关联两方的角色和多重性标记。

    如图                         

            5、聚合关系(Aggregate)是关联关系的一种,表示总体与部分的关系是has- a的关系。总体和部分是可分离的他们能够具有各自的生命周期。部分能够属于多个总体对象,也能够为多个总体对象共享。比方汽车和轮胎。表如今代码层和关联关系是一致的。仅仅能从语义级别区分。在UML类图设计中,聚合关系以空心菱形加实线箭头表示。

    如图                           


           6、组合(Compose)也是关联关系的一种特例,它体现的是一中is-a 的关系,这样的关系比聚合更强,它所表示的总体与部分的关系是不可分的。

    总体的生命周期结束部分的生命周期也结束。

    如人和人的大脑。在UML设计中用实心的菱形和实现箭头表示。

     如图                           


            上述的六种关系非常easy,在应用中easy混淆的就是箭头所指的方向,当中泛化和实现指向抽象类。

    依赖和关联指向属性类或者子类。此类总结网上非常多。为了学习最好自己实际动手画画。

    会有精彩等着你。

  • 相关阅读:
    tomcat 闪退处理
    MVC的各个部分都有那些技术来实现?如何实现?
    jsp和servlet的区别、共同点、各自应用的范围?
    如何从CDN加载jQuery?
    window.onload()函数和jQuery中的document.ready()有什么区别?
    JQuery有几种选择器?
    jQuery 库中的 $() 是什么?
    JS 中 == 和 === 区别是什么?
    如何在JavaScript中每x秒调用一个函数
    undefined,null 和 undeclared 有什么区别?
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/6728141.html
Copyright © 2011-2022 走看看