JavaSE基础(六)—— 面向对象、封装、对象内存图、成员变量和局部变量区别

目录

一、面向对象对象介绍

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()
  • 必须提供一个无参构造器
     

九、使用标准JavaBean改造面向对象案例

十、补充知识:成员变量、局部变量区别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心上学事上练

感谢您的支持,让我们一起成长

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值