大纲:内容
1.面向对象回顾
2.匿名对象介绍
3.面向对象特征-继承
4.抽象类的使用
5.模板设计模式
1.面向对象的核心思想是什么
·面向对象的核心思想是什么?
—用代码来模拟现实生活中的事物,比如学生类表示学生事物,对象表示的就是具体的学生,有了类就可以描述万千世界所有的事物了。
·先有类还是先有对象?
·Java类的创建?
—类名建议使用大驼峰命名法,每个单词首字母需要大写。
—Java规定,一个Java文件中可以定义多个类,但是只能有一个类使用public修饰,public修饰的类名需要和java文件名保持一致。
—按照规范,实际工作之时,建议一个文件中只能有一个类。
·类中的组成成份?
—1 成员变量
—2 成员方法
—3 构造方法
—4 内部类
—5 代码块
——类成份示例:
public class Student{
//1.成员变量
private String name;
//2.构造器
public Student() { }
//3.方法
public void run(){ }
//4.代码块
static { }
//5.内部类
public class Heart{ }
}
·关于对象的简单操作
··创建对象所使用的关键字?
··创建对象的格式?
··调用对象的成员?
—调用成员变量:对象名.成员变量名
—调用成员方法:对象名.成员方法名(参数)
·关于构造方法的特点
··定义构造方法的格式?
··定义构造方法的特点?
—没有返回值,连void都没有
—方法名和类名相同
—构造方法可以进行重载定义
··构造方法的作用?
—空参构造:初始化对象的数据为默认值
—有参构造:初始化对象时,为对象的属性赋值
·面向对象的三大特征
·封装的定义
··封装的思想及其作用?
—思想:把实现细节隐藏,对外提供公共的访问方式
—作用:提高代码的安全性,提高代码的复用性
··封装的步骤?
—把成员变量进行private修饰
—提供对应的setter和getter方法
·this关键字
··this关键字的含义?
—this代表的是本类对象的引用
—在构造方法中,this代表的是new的对象
—在成员方法中,this代表的是调用此方法的对象
··this关键字的作用?
2.匿名对象介绍
·什么是匿名对象?
·匿名对象的使用?
—直接使用匿名对象调用方法
—匿名对象作为方法传参
—匿名对象作为方法的返回值
3.继承
··为什么学习继承?
—继承是将多个类的相同属性和行为抽取到单独一个类中,那么多个类无需再定义这些共性属性和行为,只要继承这个单独类即可继承。
—多个类称为子类(派生类),单独的这个类称为父类(基类或超类)
··继承的格式
··继承的好处
—提高代码的复用性
—提高代码的维护性
—让类与类产生了关系(继承关系),是多态的前提
··继承的特点
···为什么不支持多继承?
—因为一个子类如果继承多个父类,父类有相同的方法声明,子类会产生继承冲突,所以不允许。
··继承中成员的访问特点
···成员变量
···成员方法
···构造方法
—子类所有的构造方法都会默认去访问父类的空参构造方法
——-原因:因为子类在初始化时,可能会用到父类的数据,所以通过访问父类的构造,先给父类初始化
—-如果进行初始化呢?
—-每个构造方法中默认第一条语句都会有一个super()
—如果父类没有空参构造,那么子类如何进行给父类初始化?
—-子类可以通过super(…)访问父类的有参构造方法
—-子类通过this(…)访问子类的有参构造,再通过有参构造去访问父类的有参构造(不推荐)
—-注意事项:super(…)和this(…)因为二者都需要放在构造方法的第一条可执行语句,所以二者不能共存
··方法重写
···什么是方法重写?
···为什么要学习方法重写?
—当子类需要使用父类的功能,但是父类的功能又满足不了子类,那么子类需要重写,这样既可以使用父类的功能,也可以增加新的功能
···如何进行方法重写
···Override注解是做什么的,有什么用?
—@Override是放在重写后的方法上,作为重写是否正确的校验注解,加上该注解后如果重写错误,编译阶段会出现错误提示。建议重写方法都加上@Override注解,代码安全!
···方法重写的注意事项
—私有的方法无法重写
—重写的方法与被重写的方法,名字,参数列表需要保持一致
—子类重写父类方法时,子类方法访问权限必须大于或者等于父类方法权限(一般保持一致即可)
··关键字this和super的区别
代表含义 | 调用变量 | 调用方法 | 调用构造 | |
---|---|---|---|---|
this | 本类的对象 | this.变量名:访问本类成员变量 | this.方法名(…):访问本类成员方法 | this.构造方法名(…):访问本类构造方法 |
super | 父类数据存储空间 (可以看成父类的对象) |
super.变量名:访问父类成员变量 | super.方法名(…):访问父类构成员方法 | super.构造方法名(…):访问父类的构造方法 |
··抽象类
概述
—抽象类其实就是为抽象方法提供存活的空间,需要在类的前面加上abstract关键字修饰
—抽象类的作用主要是规范子类必须实现某种规则