zoukankan      html  css  js  c++  java
  • UML 类图总结

    类的表示

    UML中类的表示

    从上到下:类名、属性、方法、内部类

    若类名为斜体则表示其为虚类

    标示符前的符号含义如下:

    符号 含义
    + public
    - private
    # protected

    标示符的冒号后表示:属性类型或返回类型

    类间关系

    关联 Association

    关联关系例1

    在使用Java、C#和C++等编程语言实现关联关系时,通常将一个类的对象作为另一个类的成员变量。

    class LoginForm {  
        private JButton loginButton; //定义为成员变量  
    }  
    class JButton {}
    

    双向关联

    关联关系例2

    public class Customer {  
        private Product[] products;
    }  
    
    public class Product {  
        private Customer customer;
    }  
    

    单向关联

    关联关系例3

    public class Customer {  
        private Address address;  
    }  
    public class Address {}  
    

    自关联

    关联关系例4

    public class Node {  
        private Node subNode;  
    }  
    

    多重性关联

    关联关系例5

    public class Form {  
        private Button[] buttons; //定义一个集合对象  
    }  
    public class Button {}  
    

    聚合 Aggregation

    在聚合关系中,成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在。

    成员对象通常作为构造方法、Setter方法或业务方法的参数注入到整体对象中。

    public class Car {  
        private Engine engine;  
      
        public Car(Engine engine) {  
            this.engine = engine;  
        }  
          
        public void setEngine(Engine engine) {  
            this.engine = engine;  
        }  
    }  
      
    public class Engine {}  
    

    组合 Composition

    组合关系中整体对象可以控制成员对象的生命周期,一旦整体对象不存在,成员对象也将不存在,成员对象与整体对象之间具有同生共死的关系。

    在整体类的构造方法中直接实例化成员类。

    public class Head {  
        private Mouth mouth;  
      
        public Head() {  
            mouth = new Mouth(); //实例化成员类  
        }  
    }  
    public class Mouth {}  
    

    依赖 Dependency

    一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。

    将一个类的对象作为另一个类中方法的参数

    class Driver {
        public drive(Car car) {
            car.move();
        }
    }
    
    class Car {
        public void move();
    }
    

    在一个类的方法中将另一个类的对象作为其局部变量

    Class Main {
        pubilc static void main(String[] args) {
            File file = new File(args[0]);
            Scanner scanner = new Scanner(file);
            ...
        }
    }
    

    在一个类的方法中调用另一个类的静态方法

    Class Main {
        pubilc static void main(String[] args) {
            System.out.println("hello");
        }
    }
    

    泛化 Generalization

    即继承关系。

    //父类  
    public class Person {  
        protected String name;  
        protected int age;  
      
        public void move() {} 
        public void say() {}  
    }  
      
    public class Student extends Person {  
        private String studentNo;  
      
        public void study() {}  
    }  
      
    public class Teacher extends Person {  
        private String teacherNo;  
      
        public void teach() {}  
    }  
    

    实现 Realization

    public interface Vehicle {  
        public void move();  
    }  
      
    public class Ship implements Vehicle {  
        public void move() {}  
    }  
      
    public class Car implements Vehicle {  
        public void move() {}
    }
    
  • 相关阅读:
    vue使用elementui合并table
    使用layui框架导出table表为excel
    vue使用elementui框架,导出table表格为excel格式
    前台传数据给后台的几种方式
    uni.app图片同比例缩放
    我的博客
    【C语言】取16进制的每一位
    SharePoint Solution 是如何部署的呢 ???
    无效的数据被用来用作更新列表项 Invalid data has been used to update the list item. The field you are trying to update may be read only.
    SharePoint 判断用户在文件夹上是否有权限的方法
  • 原文地址:https://www.cnblogs.com/sequix/p/8573524.html
Copyright © 2011-2022 走看看