高内聚 :类的内部数据操作细节自己完成,不允许外部干涉
低耦合 :仅对外暴露少量的方法用于使用
隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提高系统的可扩展性、可维护性。通俗的说,把该隐藏的隐藏起来,该暴露的暴露出来。这就是封装性的设计思想
2、封装性的体现
① 私有化(private)类的属性xxx,同时提供公共的(public)设置(setXxx())和获取(getXxx())的方法
② 不对外暴露私有的方法,我们可以设置为private
③ 如果不希望类在包外被调用,可以将类设置为缺省的
④ 单例模式(将构造器私有化):饿汉模式与懒汉模式
3、四种权限修饰符:封装性的体现,需要权限修饰符来配合
从大到小:private < 缺省 < protected < public
权限修饰符可修饰的结构:① 4种权限都可以用来修饰类的内部结构:属性、方法、构造器、内部类;② 只能使用缺省或者public来修饰类
修饰范围
总结封装性:Java提供了4种权限修饰符来修饰类及类的内部结构,体现类及类的内部结构在被调用时的可见性的大小
二、继承性 1、为什么有继承
多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可
2、继承的优点
① 减少了代码的冗余,提高了复用性
② 具有更好的扩展性,继承的出现让类与类之间产生了关系,提供了多态的前提
③ 继承的出现,更有利于功能的扩展
注:不能为了继承而去继承,不要仅为了获取其他类中某个功能而去继承
3、继承的格式:class A extends B{}
A:子类、派生类、subclass
B:父类、超类、基类、superclass。子类直接继承的父类,称为:直接父类;间接继承的父类称为:间接父类
4、继承的规则
一旦子类A继承父类B以后,子类A中就获取了父类B中声明的所有的属性和方法
子类不能直接访问父类中私有的(private)的成员变量和方法
父类中声明为private的属性或方法,子类继承父类以后,仍然认为获取了父类中私有的结构。只是因为封装性的影响,使得子类不能直接调用父类的结构而已
父类私有属性,可以通过get、set方法,子类间接调用
父类私有方法,子类可以通过其他公共方法间接调用
5、继承性说明
① 子类和父类是相对的概念,父类又继承自己的父类,所有的类直接或间接的继承于java.lang.Object类
② 子类继承父类以后,还可以声明自己特有的属性或方法:实现功能的拓展
③ 一个父类可以有多个子类,但子类只能声明一个父类:Java类的单继承性
④ 如果一个类没有显式继承另外一个类的话,则其父类为:java.lang.Object类(根基类)
⑤ 任何一个类在继承java.lang.Object类之后,就获取了Object类中声明的属性和方法
⑥ Java中,继承是对父类的扩展,而不是父类的子集
6、子类对象实例化过程
从结果上来看:(继承性)
子类继承父类以后,就获取了父类中声明的属性或方法
创建子类的对象,在堆空间中,就会加载所有父类中声明的属性
从过程上来看: