类和对象
1. 软件开发思想演变
1.1 面向过程编程思想
是一个过程。
将过程功能化、函数化、方法化、模块化。
将原来重复使用的内容,或者说是原来直接编写的指令改为一个个的小功能,这些小功能要求可以独立完成某个任务,还能实现复用。
例如:Scanner 中的 nextInt() 方法,就可以独立完成控制台输入整数的功能,并且可以复用。
1.2 面向对象编程思想
面向对象是基于面向过程演进而来的。
对象。
将具有相似功能或者具有关联性功能,抽取到一个类中,然后下次想使用该功能时,先找到该类的对象,再使用即可。
例如:我们需要实现键盘录入,首先想到的就是 Scanner ,这个类中提供了与键盘录入有关的所有功能。
1.3 如何理解面向过程和面向对象?
卖煎饼。
将卖煎饼转换为面向过程思路。
将卖煎饼转换为面向对象思路, 找专业的人来干专业的事儿。
项目规模必须达到一定的程度,否则面向过程可能比面向对象更实在。
2. 生活中的类和对象
无论是面向过程还是面向对象,它们都是来自于生活中的技巧和思路。
类和对象,是面向对象中非常重要的两个概念。
“万物皆对象”:你可以将生活中所有的事物、个体都看成一个个的对象。
人类的认知规律: 首先认识一个个体、把它看成是一个 对象 。然后再发现多个具有相似特征的个体之后,把它们抽取下相似特征归为一个 类别 。
例如:下面的这辆车可以看作是一个对象,然后对象的特征为:黄色的法拉利、有4个轮胎、有两个大灯、售价多少,可以前行、可以停下,可以播放音乐、可以把妹。
将特征分类:
- 属性
- 颜色
- 品牌
- 轮胎数
- 车灯数
- 价格
- …
- 行为
- 前行
- 停下
- 播放音乐
- …
车类。
例如:下面这只狗。
也可以看成一个对象,对象的特征描述:
-
属性:
- 品种:拉布拉多
- 颜色:棕白相间
- 性别:
- 年龄:
- 姓名:小白
- …
-
行为:
- 可以跑
- 可以跳
- 可以叫、看家
- 可以导盲
- …
狗类。
生活中类和对象是无处不在的,类是从一组具有相同特征的对象中抽象而来的,所以它是一个抽象的概念,无法直接使用此概念做什么事儿。而对象则是基于类抽象概念为模板产生的个体,对象是可以直接用于干什么事儿。
所以程序中,为什么说:Scanner 想使用要先创建对象,最后用对象去调用行为。
3. 程序中的类和对象
3.1 类概念
Java 语言也是符合面向对象编程思想的。
而且在 Java 中,类是基本的组成单元,意味着想开发一个 Java 程序就是要编写一个到多个的类。
// 类声明
[访问权限修饰符] class 类名 {
// 类体
// 【属性】/成员变量/实例变量/Field
[访问权限修饰符] 数据类型 属性名;
// ...
// 行为/成员【方法】/实例方法/Method
[访问权限修饰符] [其他修饰符] 返回值类型 方法名(形式参数列表) {
// 方法体
}
// ...
}
上述语法就是 Java 中用于描述生活中类概念的语法。
3.2 类图
在使用程序编写狗类之前,先使用类图描述好狗类:即设计狗类的类图。
3.3 对象概念
对象是类的具体实例,也是在使用时的主体。(面向对象)
// 对象名的规范和变量名一致
类名 对象名 = new 类名(参数值);
// 属性赋值
// 描述对象的属性
对象名.属性名 = 属性值;
// 调用方法
// 描述对象的行为
对象名.方法名(参数值);