面向对象
三大特性
-
封装
-
继承
-
多态
对象
抽象:抽 像(的)
对象:抽象的具体实例
创建对象(实例化)
使用new关键字
例如:student对象就是一个Student类的具体实例
本质:以类的方法组织代码,以对象的组织(封装)数据
使用new创建时
-
分配内存空间
-
本质是对类中构造器的调用
构造器
也称构造方法,用来初始化值
一个类即使什么也不写,也存在一个构造方法
生成构造器快捷键 alt+insert
写有参构造时,要写this.name = name;
作用:
-
创建对象
- 初始化成员变量
特点:
-
和类名字相同
-
没有返回类型,不能写void
-
有参构造和无参构造可同时存在(方法重载)
- 需要改写参数时,显式地改写默认的构造器
- 存在有参构造时,无参构造必须写出来!
封装(属性私有,get/set)
属性私有:private关键字
封装作用
-
提高程序安全性
-
隐藏代码实现细节
-
统一接口
-
提高系统维护性
get/set
- get()方法和set()方法的作用是为私有属性设置读写属性。
- get/set方法是public属性
- 只设置get()方法,那么表示只读属性;只设置set方法,那么表示只写属性;设置了get()方法和set()方法,那么表示读写属性。
继承
关键字extends(扩展),子类是父类的扩展
快捷键 ctrl+h 查看继承树
-
子类继承父类的所有方法
-
private的无法继承
Object类
Java中所有类,默认继承Object类
Java中只有单继承,没有多继承(一个儿子只有一个爸爸,一个爸爸可以有多个儿子),但可以间接继承多个
this/super
在一个构造函数中调用另一个构造函数时,用this关键字
this():调用本类的构造方法
super():调用父类构造方法
-
super和this不能同时调用构造方法
-
调用时必须写在构造方法的第一行
方法重写
方法名一样,方法体不同
要有继承关系,子类重写父类方法
子类一旦重写了父类的方法,执行子类的方法
不能被重写的方法:static,final,private
-
方法名必须相同
-
参数列表必须相同
-
修饰符范围可以扩大 public>private
-
抛出的异常:范围,可以被缩小,但不能扩大
多态
同一方法根据对象的不同,行为方式也不同
-
是方法的多态,属性没有
-
Father s1 = new Son();
instanceof关键字
判断两个类(对象)是否存在继承关系
权限修饰符
public:可以继承
protected:
default:啥也不写