面向对象介绍
⚫ 并不是一个技术,而是一种编程指导思想。
⚫ 把现实世界的具体事物全部看成一个一个的对象来解决问题。
为什么要用面向对象编程
⚫ 生活中我们解决问题就是按照对象化的方式进行的。如果程序也能够按照生活的中的方式来解 决问题,那么程序就更符合人类的思维习惯,代码看起来会更易理解、更简单。
面向对象编程的指导思想、
优点小结:
⚫ 在程序中也把现实世界的具体事物全部看成一个一个的对象来解决问题。
⚫ 按照面向对象编程来设计程序:程序代码符合人类思维习惯,更易理解、更简单。
在Java中,必须先设计类,才能获得对象。
类(设计图):是对象共同特征的描述; 对象:是真实存在的具体实例
总结:
1. 类和对象是什么?
⚫ 类:是共同特征的描述(设计图);
对象:是真实存在的具体实例。
2. 如何得到对象?
3. 拿到对象后能做什么?
⚫ 对象.成员变量; ⚫ 对象.成员方法(…)
定义类的补充注意事项
⚫ 成员变量的完整定义格式是:修饰符 数据类型 变量名称 = 初始化值; 一般无需指定初始化值,存在默认值。
⚫ 类名首字母建议大写,且有意义,满足“驼峰模式”。
⚫ 一个Java文件中可以定义多个class类,且只能一个类是public修饰,而且public修饰的类名必须成为代码文件名。 实际开发中建议还是一个文件定义一个class类。
1. 定义类有哪些建议,有什么需要注意的?
⚫ 类名首字母建议大写、英文、有意义,满足驼峰模式,不能用关键字,满足标志符规定;
⚫ 一个代码文件中可以定义多个类,但是只能一个类是public修饰的, public修饰的类名必须是Java代码的文件名称。
2. 成员变量的格式是什么样的,有什么特点?
⚫ 成员变量的完整定义格式是:修饰符 数据类型 变量名称 = 初始化值;
⚫ 一般无需指定初始化值,存在默认值。
对象内存图
总结:
1.对象放在哪个位置?
⚫ 堆内存中
2. Car c = new Car(); c变量名中存储的是什么?
⚫ 存储的是对象在堆内存中的地址。
3. 成员变量(name、price)的数据放在哪里,存在于哪个位置?
⚫ 对象中,存在于堆内存中。
垃圾回收
⚫ 注意:当堆内存中的类对象或数组对象,没有被任何变量引用(指向)时,就会被判定为内存中的“垃圾”。
⚫ Java存在自动垃圾回收器,会定期进行清理。
构造器
注意事项:
⚫ 任何类定义出来,默认就自带了无参数构造器,写不写都有。
⚫ 一旦定义了有参数构造器,无参数构造器就没有了,此时就需要自己写一个无参数构造器了。
总结
1.构造器的作用?
⚫ 初始化类的对象,并返回对象的地址。
2.构造器有几种,各自的作用是什么?
⚫ 无参数构造器:初始化的对象时,成员变量的数据均采用默认值。
⚫ 有参数构造器:在初始化对象的时候,同时可以为对象进行赋值。 3.构造器有哪些注意事项? ⚫ 任何类定义出来,默认就自带了无参数构造器,写不写都有。
⚫ 一旦定义了有参数构造器,无参数构造器就没有了,此时就需要自己写无参数构造器了。
总结
1. this关键字的作用?
⚫ 代表当前对象的地址。
2. this关键字在构造器中、成员方法中可以做什么?
⚫ 可以用于访问当前对象的成员变量
封装
⚫ 面向对象的三大特征:封装,继承,多态。
⚫ 什么是封装? 隐藏实现细节,暴露出合适的访问方式。(合理隐藏、合理暴露)
总结:
1.封装是什么,一般封装怎么体现出来?
⚫ 面向对象的三大特征之一,合理隐藏,合理暴露。
⚫ 一般会把成员变量使用private隐藏起来。
⚫ 通过getter和setter方法暴露其访问。
2.封装有什么好处?
⚫ 加强了程序代码的安全性。
⚫ 适当的封装可以提升开发效率,同时可以让程序更容易理解与维护。
JavaBean
⚫ 也可以理解成实体类,其对象可以用于在程序中封装数据。
标准JavaBean须满足如下要求:
⚫ 成员变量使用 private 修饰。
⚫ 提供每一个成员变量对应的 setXxx() / getXxx()。
⚫ 必须提供一个无参构造器。