一、类是啥?—— 现实概念的“代码化身” 🧠

关键字:类、对象模板、属性、操作

🤔

类是

面向对象的“基本单元”

——它像一个“模板”,描述了一组具有相同特征(属性)和行为(操作)的对象。比如“学生类”,就定义了所有学生都有的“姓名、学号”(属性)和“选课、查成绩”(操作)。

💡 新手类比:

类就像“蛋糕模具”——模具(类)规定了蛋糕的形状(属性)和“可以加奶油”(操作),而每个用模具做出来的蛋糕(对象),都是这个类的具体实例~

📊 UML中的类长这样:

类在UML里是一个“三格矩形”: - 第一格:类名(比如“Student”); - 第二格:属性(比如“name:String”); - 第三格:操作(比如“getContactInfo()”)。 也可以隐藏属性/操作,只显示类名(简化版)。

二、类名:类的“身份证” 🔖

关键字:类名、UpperCamelCase

📌

每个类必须有

唯一的名字

,得从“业务术语”里选(比如“学生”“课程”),别用模糊的词~

✍️ 命名规则:

UpperCamelCase(大驼峰)

:每个单词首字母大写,比如“Student”“ClassRoom”,别用数字/特殊符号~

🌰 两种类名:

  • 简单名:比如“Person”(单独的类名);
  • 路径名:比如“java.awt.Rectangle”(带包名,说明类属于哪个“文件夹”)。

三、属性:类的“特征数据” 📝

关键字:属性、可见性、类型、多重性、初始值

📌 UML属性的语法:

可见性

opt

属性名 [: 类型]

opt

[多重性]

opt

[=初始值]

opt

[{特性}]

opt

  1. 可见性:谁能“碰”这个属性 🔒

UML用符号表示属性的“访问权限”: -

+

(公有public):其他类都能访问; -

-

(私有private):只有自己类能访问; -

#

(保护protected):自己和子类能访问。 比如“- name:String”表示“name是私有属性,只有Student类自己能用”~

  1. 类型:属性的“数据格式” 📊

指定属性的“数据类型”,比如String(字符串)、int(整数)、double(小数),也可以是自定义的类(比如“address:ContactInfo”)。

  1. 多重性:属性的“数量” 📦

用“[数字]”表示属性是“单个”还是“数组”: - 不写:默认是1(单个); -

nums:int[10]

:表示nums是“长度为10的int数组”。

  1. 初始值:属性的“默认值” ⚙️

用“=值”给属性设默认值,比如

age:int=18

表示“新建学生对象时,age默认是18”~

  1. 特性:属性的“规则” 📜

UML定义了3种特性: -

可变(changeable)

:可以随便改(默认); -

只增(addOnly)

:只能加,不能减/改; -

冻结(frozen)

:初始化后不能改(对应C++的const),比如

PI:double=3.1415926{frozen}

四、操作:类的“行为能力” 🎮

关键字:操作、方法、可见性、参数、返回类型

📌 UML操作的语法:

可见性

opt

操作名([参数列表])

opt

[: 返回类型]

opt

[{特性}]

opt

  1. 操作名:行为的“名字” ✍️

动词/动词短语

命名(比如“getContactInfo()”“submitOrder()”),命名规则和属性一样(私有操作可以用下划线开头)。

  1. 参数列表:操作的“输入” 📥

和编程语言里的“函数参数”一样,格式是“[方向]参数名:类型[=默认值]”: - 方向:in(输入,不能改)、out(输出,可以改)、inout(输入输出); - 例子:

oper(out arg1:int, arg2:double=3.2)

表示“oper有两个参数,arg1是输出参数,arg2默认值是3.2”。

  1. 返回类型:操作的“输出” 📤

用“:类型”表示操作的返回值类型,比如

getContactInfo():ContactInfo

表示“这个操作返回ContactInfo类型的数据”;没有返回值就写“:void”(或不写)。

  1. 特性:操作的“行为规则” 📜

比如: -

查询(isQuery)

:操作不改变系统状态(比如“getXXX()”); -

冻结(frozen)

:操作不能被重写(对应C++的非虚函数)。

五、职责:类的“任务清单” 📋

关键字:职责、类的责任

📌

职责是类的“义务”——说明这个类“要做啥”。比如“Student类的职责是管理学生的基本信息和选课行为”,可以写在类的第四格(可选)。

总结:类是“数据+行为”的封装体 📦

🎉

类把“属性(数据)”和“操作(行为)”打包在一起,是面向对象的“核心概念”——就像“手机类”包含“颜色、内存”(属性)和“打电话、拍照”(操作),用类能清晰地描述现实中的任何概念~ 要不要我帮你整理一份

类的UML表示模板

,方便你快速画出自己的类图?