JAVA全系列 教程
3762个小节阅读:7088.9k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
学完本节,如果还有点糊涂,很正常,本节仅是你的“初恋对象”。本节仅仅是为了方便大家入门,更快的了解面向对象。后面,才是真正开始“面向对象”,真正为了“结婚”、为了“开发”的“真对象”。
我们在现实生活中,思考问题、发现问题、处理问题,往往都会用“表格”作为工具。实际上,“表格思维”就是一种典型的面向对象思维。
实际上,互联网上所有的数据本质上都是“表格”。我们在这里通过从表格表示数据开始,引入对象和类。大家就会神奇的发现,原来“表格就是对象”。
以公司雇员表为例:
ID | 姓名 | 岗位 | 基本工资 | 绩效工资 | 入职日期 |
---|---|---|---|---|---|
1001 | 高小一 | 程序员 | 20000 | 0 | 9月1日 |
1002 | 高小二 | 前台 | 5000 | 0 | 9月2日 |
1003 | 高小三 | 销售员 | 3000 | 15000 | 9月1日 |
1004 | 高小四 | 财务 | 5000 | 0 | 9月3日 |
上面这个雇员表,可以将公司所有员工信息“结构化”、“标准化”,让管理者可以方便的进行统计和管理。
我们也经常将表中的“列”,叫做“字段”,英文中统一叫做“field”。显然,field定义了表的结构。我们可以通过增加新的field(列),让表中所有的行增加数据:
ID | 姓名 | 岗位 | 基本工资 | 绩效工资 | 入职日期 | 工作地点 |
---|---|---|---|---|---|---|
1001 | 高小一 | 程序员 | 20000 | 0 | 9月1日 | 北京 |
1002 | 高小二 | 前台 | 5000 | 0 | 9月2日 | 北京 |
1003 | 高小三 | 销售员 | 3000 | 15000 | 9月1日 | 郑州 |
1004 | 高小四 | 财务 | 5000 | 0 | 9月3日 | 上海 |
面向对象编程中,类对应表的结构(表的field),我们可以定义出“雇员类”:
通过上图,可以看到,雇员类和雇员表的结构完全一样。只不过,雇员类增加了数据的类型而已。
每个公司的雇员都要有相关的动作。比如:所有雇员每天的工作标准动作有:
我们可以在雇员表中将动作信息也包含进去:
ID | 姓名 | 岗位 | 基本工资 | 绩效工资 | 入职日期 | 工作地点 | 晨会动作说明 |
---|---|---|---|---|---|---|---|
1001 | 高小一 | 程序员 | 20000 | 0 | 9月1日 | 北京 | 1. 8:30打卡 |
1002 | 高小二 | 前台 | 5000 | 0 | 9月2日 | 北京 | 2. 开晨会 |
1003 | 高小三 | 销售员 | 3000 | 15000 | 9月1日 | 郑州 | 3. 9:00结束 |
1004 | 高小四 | 财务 | 5000 | 0 | 9月3日 | 上海 | 4. 喊口号:”加油” |
新增的列“雇员动作说明”,显然是对所有的雇员都有用,每个雇员都有这个动作。 在类中就是定义成方法:
当然,我们也可以根据需求,为雇员定义多个动作。比如:午休、提交工作日志、领取工资等等。
前面两节,我们主要讲解的是“表结构和类的对应关系”。那么,表中的数据和什么对应呢?
表中的一行一行的数据,都在表结构的约束范围内,大家的结构都是相同的。如下表:
ID | 姓名 | 岗位 | 基本工资 | 绩效工资 | 入职日期 | 工作地点 | 晨会动作说明 |
---|---|---|---|---|---|---|---|
1001 | 高小一 | 程序员 | 20000 | 0 | 9月1日 | 北京 | 1. 8:30打卡2. 开晨会3. 9:00结束4. 喊口号:”加油” |
1002 | 高小二 | 前台 | 5000 | 0 | 9月2日 | 北京 | |
1003 | 高小三 | 销售员 | 3000 | 15000 | 9月1日 | 郑州 | |
1004 | 高小四 | 财务 | 5000 | 0 | 9月3日 | 上海 |
显然,每一行数据都有“姓名”、“基本工资”等“列”,也都有标准的“晨会动作”。在面向对象编程中,下面三句话大家记住:
因此,上面的四行数据,我们使用四个对象就需要这样表示(假设有对应的构造方法,如下代码是示意,非真实代码):
emp1 = new Employee(ID:1001, name:"高小一", job:"程序员", baseSalary:20000, salary2:0, hiredate:"9月1日", address:"北京");
emp2 = new Employee(ID:1002, name:"高小二", job:"前台", baseSalary:5000, salary2:0, hiredate:"9月2日", address:"北京");
emp3 = new Employee(ID:1003, name:"高小三", job:"销售员", baseSalary:3000, salary2:15000, hiredate:"9月1日", address:"郑州");
emp4 = new Employee(ID:1004, name:"高小四", job:"财务", baseSalary:5000, salary2:0, hiredate:"9月2日", address:"上海");
有的人可能注意到了,创建对象的时候没有传入“晨会动作”这个列,是因为“晨会动作”是一个所有数据都有的标准动作,没必要再重复为每个对象创建“标准晨会动作”。
【注意】: