封装,继承,多态
封装(数据的隐藏)
我们程序设计要追求“高内聚,低耦合”。
高内聚:就是类的内部数据操作细节自己完成,不允许外部干涉;
低耦合:仅暴露少量的方法给外部使用。
封装:通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。
其实封装可以让程序变得更合理,比如下面段代码可以合理的展示人的年龄(将超过200以上的age改为0)
package first;不合理
public class Demo3 {
public static void main(String[] args) {
Student s1 = new Student();
s1.setAge(200);
System.out.println(s1.getAge());
}
}
class Student{
//定义了一个person类,有一个属性:name
private int age; //私有的age,其他类无法直接调用
public void setAge(int age){
if(age>0&&age<150) {
this.age = age; //修改了该类中实例变量age的值
}else {
this.age = 0;
}
}
public int getAge() {
return age; //返回当前age的值
}
}
作用:
- 提高程序的安全性,保护数据
- 隐藏代码的实现细节
- 统一接口
- 系统可维护增加
简单来记就是:属性私有,get/set
继承
继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。
通过extends来继承,extends意思是“拓展”。子类是父类的拓展,但注意:私有的(private)东西无法被继承
补充:
public 公共
protected 受保护
default 默认
private 私有
java中只有单继承,没有多继承。意思就是一个孩子只能有一个亲生父亲
继承是类和类之间的一种关系.除此之外,类和类之间的关系还有依赖、组合、聚合等.
继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字扩展了来表示。子类和父类之间,从意义上讲应该具有“是一个”的关系。
1. object类
JAVA中,所有的类,都默认直接或间继承object类
2. super关键字(无法调用父类中私有的东西)
super可以调用父类的属性
package first;
public