面向过程与面向对象概述
- 面向过程:是以计算机的思维方式,下达一个个的指令,去完成需求。
- 核心:流程,过程。
- 面向对象:在计算机程序发展到一定规模之后的产物,它将现实世界抽象事物抽象成对象,现实世界中的关系抽象成类,继承,帮助人们实现对现实世界的抽象与数字建模。
- 核心:对象。
- 面向对象有三大特性:封装,继承,多态(抽象)。通过面向对象可以有效提升代码质量,使之达到可复用,可维护,可扩展等。(高内聚,低耦合)
- 注意:当然了,面向对象也是基于面向过程而来的,一些规模小的程序使用面向过程而来的,一些小规模的程序使用面向过程实现反而效果更佳,适合的才是最佳的。
类和对象概述
- 万物皆对象
生活中的对象
在生活中,我们可以将每一个物体都看作是一个对象,我们一般通过特征+行为的方式来描述我们所见到的每一个对象
例如:一只狗(对象)
- 特征:(静态信息)
- 颜色:黄色
- 品种:金毛
- …
- 行为:(动态信息)
- 奔跑
- 犬吠
- …
在生活中,我们看到一个物体,往往会根据它的特征 + 行为对其进行分类/归类(物以类聚,人以群分)。所谓的类别其实本质上就是对一组对象的共有/相似特征 + 行为的抽取,它是一个抽象的概念。
计算机中的类和对象
Scanner:类,包含有键盘录入的相关方法(行为)。
每次使用它都要先创建该类的对象。(是类的一个具体实例)
类是对象的抽象概念,在计算机中想要描述生活中的对象,首先要将这些对象的特征 + 行为提取出来,然后定义好类。
对象的具体事例,在使用面相对象编辑思想进行开发时,当你需要实现一个功能时,创建一个相应的对象即可。
类和对象定义
类的定义
访问权限修饰符 class 类名 {
// 特征/属性/成员变量
访问权限修饰符 数据类型 属性名;
// ...
// 行为/方法/成员方法
访问权限修饰符 返回值类型 方法名(形式参数列表){
// 方法体
[return 返回值]
}
}
需求:小明今年18岁,每天早上不吃饭就去跑步,小红今年17岁,每天早上吃完饭再去跑步。
分析:
- 该需求中存在两个对象(小明,小红)
- 小明:
- 特征:
- 姓名:小明
- 年龄:18
- 行为:
- 跑步
- 特征:
- 小红:
- 特征:
- 姓名:小红
- 年龄:17
- 行为:
- 吃饭
- 跑步
- 特征:
- 两个对象具有相似的特征和行为,属于一个级别
public class Student {
public String name;
public int age;
public void run() {
System.out.printf("%s今年%d岁,正在跑步!\n", name, age);
}
public void eat() {
System.out.printf("%s今年%d岁,正在吃饭!\n", name, age);
}
}
对象的定义
// 创建对象
类名 对象名 = new 类名([参数列表]);
// 使用对象的属性和方法
对象名.属性名 = 属性值;
对象名.方法名(参数列表);
例如:Scanner
// 创建对象
Scanner input = new Scanner(System.in);
// 使用对象的属性和方法
input.nextInt();
public class Demo01 {
public static void main(String[] args) {
// 创建对象
Student xiaoMing = new Student();
// 给属性赋值
xiaoMing.name = "小明";
xiaoMing.age = 18;
// 使用方法
xiaoMing.run();
Student xiaoHong = new Student();
xiaoHong.name = "小红";
xiaoHong.age = 17;
xiaoHong.eat();
xiaoHong.run();
}
}
UML-类图
UML的目标是以面向对象图的方式来描述任何类型的系统,具有很宽的应用领域。其中最常用的是建立软件系统的模型,但它同样可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。总之,UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。
截止UML2.0一共有13种图形(UML1.5定义了9种,2.0增加了4种)。分别是:用例图、类图、对象图、状态图、活动图、顺序图、协作图、构件图、部署图9种,包图、组合结构图、交互概览图3种。
类图:描述系统中类的静态结构。
类图是描述系统中的类,以及各个类之间的关系的静态视图。能够让我们在正确编写代码以前对系统有一个全面的认识。类图是一种模型类型,确切的说,是一种静态模型类型。类图表示类、接口和它们之间的协作关系。
在线绘制:
- https://app.diagrams.net/
- ProcessOn