当前位置: 首页 > news >正文

国际域名网站安庆高端网站建设公司

国际域名网站,安庆高端网站建设公司,医院网站建设预算,c 网站开发环境提示:文章详细的讲解了类图的四种关系,以及每种关系如何转化为对应的代码。 UML-类图和类图转化为代码 一、类于类之间的关系1.依赖关系2.关联关系(1) 单向关联(2) 双向关联(3) 自关联(4) 聚合关联(has-a)(5) 组合关联(contains-a&#xff09…

提示:文章详细的讲解了类图的四种关系,以及每种关系如何转化为对应的代码。

UML-类图和类图转化为代码

  • 一、类于类之间的关系
    • 1.依赖关系
    • 2.关联关系
      • (1) 单向关联
      • (2) 双向关联
      • (3) 自关联
      • (4) 聚合关联(has-a)
      • (5) 组合关联(contains-a)
    • 3.泛化关系(is-a)
    • 4.实现关系
  • 二、UML类图转化为代码
    • 1.依赖关系(Dependency)
    • 2.泛化关系(Generalization)
    • 3.关联关系(Association)
      • (1)单向关联
      • (2)双向关联
      • (3)自关联
    • 4.聚合关系(Aggregation)
    • 5.组合关系(Composition)
    • 6.实现关系(Implementation)
  • 三、类图转化为代码例题练习
  • 四、总结


一、类于类之间的关系

1.依赖关系

  • 依赖关系 是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。
  • 依赖关系使用一个带箭头的虚线表示,箭头指向被依赖的对象(或被使用的对象)
    在这里插入图片描述

2.关联关系

  • 关联关系是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系。
  • 关联的多重性:
    • 关联的多重性是指有多少对象可以参与关联,它可以用来表达一个取值范围、特定值、无限定的范围或者一组离散值。
    • UML 中关联的多重性用数字标识的范围来表示,其格式为 “minimum…maximum” ,其中 minimum 和 maximum 都表示 int 类型。
    • 多重性也可以使用符号 “*” 来表示一个没有上限或者说上限为无穷大的范围。
    • 赋给一个端点的多重性表示该端点可以有多个对象与另一个端点的一个对象关联。
      在这里插入图片描述

(1) 单向关联

  • 单向关联使用一个带箭头的实线来表示,箭头指向关联的一方
    在这里插入图片描述

(2) 双向关联

  • 双向关联使用实线表示,将两个类连接起来。
    在这里插入图片描述

(3) 自关联

  • 一个类可以与自己关联,这是可以将其称为自关联或者自身关联。
    在这里插入图片描述

(4) 聚合关联(has-a)

  • 简单理解:部分类可以脱离整体而存在。
  • 部分类的生命周期独立于整体类的生命周期,即部分类能够脱离整体而单独存在,称为聚合关系。
  • 聚合关系使用一个带空心菱形的实线来表示,空心菱形指向整体
    在这里插入图片描述

(5) 组合关联(contains-a)

  • 简单理解:部分类不能够独立存在。
  • 部分类的生命周期不独立于整体类的生命周期,即部分类不能够脱离整体而单独存在,称为组合关系。
  • 组合关系使用一个带实心菱形的实线来表示,实心菱形指向整体
    在这里插入图片描述

3.泛化关系(is-a)

  • 简单理解:继承关系
  • 泛化关系使用一个带三角箭头的实线来表示,箭头指向父类,即被继承的元素。
    在这里插入图片描述

4.实现关系

  • 简单理解:实现接口
  • 实现关系使用一个带三角箭头的虚线来表示,箭头指向接口,即被实现元素。
    在这里插入图片描述

二、UML类图转化为代码

1.依赖关系(Dependency)

  • 大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。
    在这里插入图片描述
public class TV{private int color;public void change(Channel c){}public void turn_on(){}public void turn_off(){}
}
public class Channel{}

2.泛化关系(Generalization)

  • 通过 extends 关键字实现继承结构。
    在这里插入图片描述
public Tank{public void ram(){}public void radion(){}
}
public SpecialTank extends tank{}

3.关联关系(Association)

  • 关联关系表示为某个类以成员变量的形式包含其他类的对象。

(1)单向关联

在这里插入图片描述

public class ClassA{private ClassB classB;
}
public class ClassB{}

(2)双向关联

在这里插入图片描述

public class Company{private Person[] persons;
}
public class Person{private Company company;
}

(3)自关联

在这里插入图片描述

public class WorkerPerson{private WorkerPerson workerPerson;
}

4.聚合关系(Aggregation)

  • 作为成员变量利用构造方法赋值。
    在这里插入图片描述
public class Car{private Engien engien;private Wheel wheel;public Car(Engien engien, Wheel wheel){this.engien = engien;this.wheel = wheel;}
}

5.组合关系(Composition)

  • 作为成员变量在构造函数中实例化另一个对象。
    在这里插入图片描述
public OnePerson{private Head head;public OnePerson(){head = new Head();}
}
public class Head{}
...

6.实现关系(Implementation)

通过 implements 关键字实现。
在这里插入图片描述

public interface IMyInterface{public String g;public int i;public int charge();
}
public class MyClass implements IMyInterface{}

三、类图转化为代码例题练习

  • 在购物车例子中,Product 类表示一个商品,包含3个属性:id、名称和价格。Cart 类表示一个购物车,包含1个属性:产品列表,同时具有添加商品和计算商品总价的方法。User类表示一个客户,包含4个属性:姓名、邮件、密码和购物车列表。请根据描述画出类图、并用简单的代码实现用户添加商品计算价格功能
    在这里插入图片描述
public class User{private String name;private String email;private String password;private List<Cart> carts;public User(List<Cart> carts, String name, String email, String password){this.carts = carts;this.name = name;this.email = email;this.password = password;}
}
public class Product{private int id;public String name;public Float price;
}
public class Cart{public List<Product> products;public int add_product(int product){}public Float get_total_price(){float = 0.0;for(Product product : products){float += product.price;}}
}

四、总结

  • 这些关系之间的强弱程度不同,从强到弱的结果是:
    • 泛化关系=实现关系>组合关系(组合关联)>聚合关系(聚合关联)>关联关系(普通关联)>依赖关系
  • 代码转换小妙招:
    • 依赖关系和关联关系箭头指向的类都是“被动”的,写在另外一个类当中。
    • 泛化关系和实现关系三角箭头指向的都是父类或者接口。
  • 关于多重性记忆的小妙招:
    • 赋给一个端点的多重性表示该端点可以有多个对象与另一个端点的一个对象关联。
http://www.15wanjia.com/news/191504.html

相关文章:

  • 企业网站建设是什么实现的物质基础和技术支撑建立公司需要什么
  • 10大设计师网站远离有害不良网站应该怎么做
  • 网站进行诊断网站开发的数据
  • 佛山住房和城乡建设部网站官网金华市有网站建设最低价
  • 如何做120急救网站网站名称收录
  • 网站开发时遇不到算法关于网页制作
  • 东莞网站设计找哪里百度经验怎么赚钱
  • 安徽省建设厅官方网站铁岭网站开发
  • 西安设计网站的公司网络游戏开发平台
  • 王店镇建设中学网站如何文字推广一个婚恋网站
  • 商城 网站 开发软件开发定制app
  • 我想网站建设做网贷网站多少钱
  • 无人机网站建设精准营销的三大要素
  • 国外设计网站都有哪些专业做化妆品的网站
  • 响应式网站建设开发公司用手机制作动画的软件
  • 建设部网站法律法规接计设做的网站
  • 欧美网站建设排名购物平台推荐
  • 合肥网站设计机构做一个响应式网站价格
  • 做网站头文件唐山专业网站建设公司
  • 网站icp备案号怎么查询专注外贸建站
  • 现在网站建设需要多少钱wordpress 数据库类型
  • 做公众号的网站模板下载做企业网的公司
  • 移动网站开发技术有哪些公司邮箱申请注册
  • 深圳万齐网站建设国家企业公司网
  • 游戏点卡平台网站开发上海免费网站建设模板推荐
  • 常州做网站的公司网页设计软件
  • 网站建设 互成网络网站营销策划
  • 做it人经常逛的网站百度收录网站中文称
  • 自己学习做网站企业信息管理系统下载
  • 搭建网站的五大步骤泰州专业网站建设公司