Java UML类图符号详解

在面向对象编程中,UML(Unified Modeling Language)类图是一种用于描述类、属性和方法之间的关系的工具。在Java编程中,UML类图是非常常用的,它可以帮助开发人员更好地理解和设计程序结构。本文将介绍一些常见的UML类图符号,并通过代码示例来说明它们的用法。

类的表示

在UML类图中,类通常用一个矩形来表示,矩形中包含类的名称和类的属性以及方法。

/**
 * 这是一个表示Person类的UML类图示例
 */
public class Person {
    private String name;
    private int age;
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    public String getName() {
        return name;
    }
    
    public int getAge() {
        return age;
    }
}

属性和方法

在UML类图中,类的属性和方法用如下符号表示:

  • "+" 表示public属性或方法
  • "-" 表示private属性或方法
  • "#" 表示protected属性或方法

下面是一个示例,展示了Person类的属性和方法在UML类图中的表示:

| Person |
|--------|
| - name: String |
| - age: int |
|--------|
| + Person(name: String, age: int) |
| + getName(): String |
| + getAge(): int |

继承关系

在UML类图中,继承关系用带有空心三角形的实线箭头表示。子类指向父类。

/**
 * 这是一个表示Student类继承自Person类的UML类图示例
 */
public class Student extends Person {
    private String school;
    
    public Student(String name, int age, String school) {
        super(name, age);
        this.school = school;
    }
    
    public String getSchool() {
        return school;
    }
}

下面是一个示例,展示了Student类继承自Person类在UML类图中的表示:

| Student |
|---------|
| - school: String |
|---------|
| + Student(name: String, age: int, school: String) |
| + getSchool(): String |

关联关系

在UML类图中,关联关系用实线箭头表示,箭头指向被引用的类。

/**
 * 这是一个表示Book类和Author类之间关联关系的UML类图示例
 */
public class Book {
    private String title;
    private Author author;
    
    public Book(String title, Author author) {
        this.title = title;
        this.author = author;
    }
}

下面是一个示例,展示了Book类和Author类之间关联关系在UML类图中的表示:

| Book |
|------|
| - title: String |
| - author: Author |
|------|
| + Book(title: String, author: Author) |

| Author |
|--------|

序列图

除了类图,UML还提供了序列图用于描述类之间的交互情况。下面是一个简单的序列图示例,表示Person类的对象创建过程:

sequenceDiagram
    participant Client
    participant Person
    Client->>Person: new Person("Alice", 25)

总之,UML类图是面向对象编程中非常重要的工具,它可以帮助开发人员更好地理解和设计程序结构。通过本文的介绍,希望读者对UML类图有了更深入的了解。