目录
一、面向对象对象介绍
1. 面向对象的重点学习什么
二、设计对象并使用
1. 设计类,创建对象并使用
1.1 如何得到对象
1.2 如何使用对象
2. 定义类的几个补充注意事项
2.1 对象的成员变量的默认值规则
三、对象内存图
1. 多个对象内存图
2. 两个变量指向同一个对象内存图
3. 垃圾回收
四、面向对象编程训练
1. 考试系统模拟-设计对象
2. 考试系统模拟-功能实现
3. 购车系统模拟-设计对象
4. 购车系统模拟-功能实现
五、构造器
1. 构造器的作用
2.构造器的定义格式
3.构造器的分类
3.1 注意事项
六、this关键字
七、封装
1. 封装的实现步骤
2. 封装的好处小结
八、标准 JavaBean
1. 标准JavaBean须满足如下要求
九、使用标准JavaBean改造面向对象案例
十、补充知识:成员变量、局部变量区别
一、面向对象对象介绍
- 并不是一个技术,而是一种编程指导思想。
- 把现实世界的具体事物全部看成一个一个的对象来解决问题。
为什么要用面向对象编程?
生活中我们解决问题就是按照对象化的方式进行的。如果程序也能够按照生活的中的方式来解决问题,那么程序就更符合人类的思维习惯,代码看起来会更易理解、更简
1. 面向对象的重点学习什么
- 学习获取已有对象并使用
- 学习如何自己设计对象并使用
二、设计对象并使用
1. 设计类,创建对象并使用
在Java中,必须先设计类,才能获得对象。
类(设计图):是对象共同特征的描述; 对象:是真实存在的具体实例。
1.1 如何得到对象
public class 类名 {
1、成员变量(代表属性的,一般是名词)
2、成员方法(代表行为的,一般是动词)
}
类名 对象名 = new 类名();
1.2 如何使用对象
对象.成员变量;
对象.成员方法(…)
2. 定义类的几个补充注意事项
- 成员变量的完整定义格式是:修饰符 数据类型 变量名称 = 初始化值; 一般无需指定初始化值,存在默认值。
- 类名首字母建议大写,且有意义,满足“驼峰模式”。
- 一个Java文件中可以定义多个class类,且只能一个类是public修饰,而且public修饰的类名必须成为代码文件名。
- 实际开发中建议还是一个文件定义一个class类。
2.1 对象的成员变量的默认值规则
三、对象内存图
1. 多个对象内存图
对象放在哪个位置?
堆内存中
Car c = new Car(); c变量名中存储的是什么?
存储的是对象在堆内存中的地址。
成员变量(name、price)的数据放在哪里,存在于哪个位置?
对象中,存在于堆内存中。
2. 两个变量指向同一个对象内存图
3. 垃圾回收
- 注意:当堆内存中的类对象或数组对象,没有被任何变量引用(指向)时,就会被判定为内存中的“垃圾”。
- Java存在自动垃圾回收器,会定期进行清理。
四、面向对象编程训练
1. 考试系统模拟-设计对象
需求:使用面向对象编程模拟考试系统,可以实现学生考试,老师批阅试卷操作并打分出来。
分析:
- 设计老师类(属性:名称、年龄、性别、行为:出题、批阅试卷)
- 设计试卷类(属性:模拟包含学生答案,正确答案即可)
- 设计学生类 (属性:学生名称、班级名称、行为:答卷)
2. 考试系统模拟-功能实现
需求:实现一个老师,分发三张试卷,给3个学生进行考试,最终输出每个学生的考试结果。
分析:
- 创建一个老师对象
- 调用老师对象的出题方法,依次得到3份试卷对象
- 创建3个学生对象
- 调用3个学生对象的考试方法并同时传入试卷对象
- 调用老师对象的批阅方法并传入试卷对象,输出考试的结果
3. 购车系统模拟-设计对象
需求:使用面向对象编程模拟购车,可以实现客户对象掏钱,销售对象交车功能。
分析:
- 设计客户类(属性:名称、性别、电话 行为:掏钱、取车)
- 设计钱类(余额、支付者)
- 设计销售类(属性:名称、性别、电话 行为:卖车)
- 设计汽车类 (属性:名称、价格)
4. 购车系统模拟-功能实现
需求:实现一个客户掏钱给销售,买一部车。
分析:
- 创建一个客户对象。
- 调用客户对象的掏钱功能,得到钱对象。
- 创建一个销售对象。
- 调用销售对象的卖车功能同时注入钱对象,得到返回的车对象。
- 调用客户对象的取车功能同时注入车对象。
五、构造器
1. 构造器的作用
用于初始化一个类的对象,并返回对象的地址。
2.构造器的定义格式
3.构造器的分类
- 无参数构造器(默认存在的):初始化的对象时,成员变量的数据均采用默认值。
- 有参数构造器:在初始化对象的时候,同时可以为对象进行赋值。
3.1 注意事项
- 任何类定义出来,默认就自带了无参数构造器,写不写都有。
- 一旦定义了有参数构造器,无参数构造器就没有了,此时就需要自己写一个无参数构造器了。
六、this关键字
作用:出现在成员方法、构造器中代表当前对象的地址,用于访问当前对象的成员变量、成员方法。
七、封装
- 面向对象的三大特征: 封装,继承,多态。
- 什么是封装? 隐藏实现细节,暴露出合适的访问方式。(合理隐藏、合理暴露)
1. 封装的实现步骤
- 一般对成员变量使用private(私有)关键字修饰进行隐藏,private修饰后该成员变量就只能在当前类中访问。
- 提供public修饰的公开的getter、setter方法暴露其取值和赋值。
2. 封装的好处小结
- 加强了程序代码的安全性。
- 适当的封装可以提升开发效率,同时可以让程序更容易理解与维护。
八、标准 JavaBean
JavaBean:也可以理解成实体类,其对象可以用于在程序中封装数据。
1. 标准JavaBean须满足如下要求
- 成员变量使用 private 修饰
- 提供每一个成员变量对应的 setXxx() / getXxx()
- 必须提供一个无参构造器