第八章-面对对象的三大特性
一、封装
1. 目前程序存在的问题:
程序没有进行数据安全检 测,可能出现业务逻辑问题
2. private :
私有的,被 private修饰的内容,只能 在本类中使用
3. 给私有化的属性提供公开的get和set方法
(1) set方法:为属性赋值
public void set属性名(数据类型 变量 名){
this.属性名 = 变量名;
}
注意:()中的数据类型取决于赋值对应的属性 类型
(2) get方法:获取属性值
public 返回值类型 get属性名(){
return 属性名;
}
注意:返回值类型取决于 获取的属性类型
二、继承
碳素笔 是一种 笔
水杯 是一种 容器
狗 是一种 动物
A is-a B
1. 理解
(1) Java中的继承:体现类之间is-a关系
A is a B关系成立,A和B之间具有继承
子类 父类
子类 继承 父类
extends
(2) 子类通过继承关系,直接使用父类中的属性和 方法
2. 继承体现了程序的复用性和扩展性
3. 方法的覆盖:[也被称为方法的重写-override]
(1) 理解:子类中定义了和父类中相同的方法
(2) 方法覆盖的要求:
a. 子类中的方法名、形参列表、返回值类型 和父类相同
b. 子类的访问修饰符和父类相同,或是比父 类更宽
(3) 使用:如果子类覆盖了父类中方法,则优先使 用子类覆盖后的方法
(4) 注意事项:
a. 如果子类定义了和父类方法名、形参列表相 同,但是返回值类型和父类不同的方法时,编译报 错
b. 如果子类定义了和父类方法名、返回值相同, 但是参数列表不同的方法时,编译通过,运行也通 过,构成了父类+子类中的方法重载
方法重载:方法名相同,形参列表不同 -》 overload
4. Java中继承特点:
(1) 一个父类可以同时定义多个直接子类
class Animal{}
class Cat extends Animal{}
class Dog extends Animal{}
(2) 一个子类只能有一个直接的父类,但是可以具 有多个间接的父类(多级继承),java中的类之间的 继承关系是:单继承
class A{}
class B extends A{}
class C extends B{}
// B是C的直接父类,A是C间接父类
5. java中的访问修饰符
(1) 访问修饰符代表可以访问的权限
(2) java中有4个访问修饰符:
private:私有的
default:默认的
protected:受保护的
public:公开的
(3) 访问权限如下:
本类 同包 不同包的子类
其他
private ok
default ok ok
protected ok ok ok
public ok ok ok
ok
(4) 4个访问修饰符修饰内容的可继承性如下:
private:被private修饰的属性和方法不允许被 继承
default:被default修饰的属性和方法只能同包 子类继承
protected:....同包+不同包的子类可以继承
public : ... 所有子类都可以继承