当我们创建一个类的对象以后,我们可以通过"对象.属性"的方式,对对象的属性进行赋值。这里,赋值操作要受到属性的数据类型和存储范围的制约。除此之外,没有其他的制约条件。但是,在实际问题中,我们往往需要给属性赋值加入额外的限制条件。这个条件就不能在属性声明中体现,我们只能通过方法进行限制条件的添加。同时,我们需要避免用户再使用"对象.属性"的方式对属性进行赋值。则需要将属性声明为私有的(private)--> 此时,针对于属性就体现了封装性。
二、封装性的体现:我们将类的属性xxx私有化(private),同时,提供公共的(public)方法来获取(getxxx)和设置(setxxx)此属性的值
拓展:封装性的体现:不对外暴露的私有的方法
单例模式
三、封装性的体现,需要权限修饰符来配合1. Java规定的4种权限(从小到大排列):private、缺省、protected、public
修饰符 类内部 同一个包 不同包的子类 同一个工程
private √
缺省 √ √
protected √ √ √
public √ √ √ √
class的权限修饰符只可以用public和缺省
default类只可以被同一个包内部的类访问
2. 4种权限修饰符可以用来修饰类及类的内部结构:属性、方法、构造器、内部类
3. 具体地,4种权限都可以用来修饰类的内部结构
修饰类的话,只能使用:缺省、public
总结封装性:Java提供了4种权限修饰符来修饰类及类的内部结构,体现类及类的内部结构在被调用时的可见性的大小
面向对象的特征之二:继承性 一、继承性的好处:①减少了代码的冗余,提高了代码的复用性
②便于功能的扩展
③为之后多态性的使用,提供了前提
二、继承性的格式:class A extends B{ }A:子类、派生类、subclass
B:父类、超类、基类 、superclass
2.1 体现:一旦子类A继承父类B以后,子类A种就获取了父类B中声明的结构:属性、方法 特别
声明的所有属性和方法 地,父类中声明为private的属性或方法,子类继承父类以后,仍然认为获取了父类中的私有的结构
只是因为封装性的影响,使得子类不能直接调用父类的结构而已
2.2 子类和父类的关系,不同于子集和集合的关系
extends:延展、扩展
三、Java中关于继承性的规定:1. 一个类可以被多个子类继承
2. Java中类的单继承性:一个类只能有一个父类
3. 子父类是相对的概念
4. 子类直接继承的父类,称为直接父类
间接继承的父类,称为间接父类
5. 子类继承父类以后,就获取了直接父类以及所有间接父类中声明的属性和方法
四、1. 如果我们没有显式地声明一个类的父类的话,则此类继承于java.lang.Object类
2. 所有的java类(除java.lang.Object类之外)都直接或间接的继承于java.lang.Object类
3. 意味着,所有的java类都具有java.lang.Object类声明的功能
面向对象特征之三:多态性 1.理解多态性:可以理解为一个事物的多种形态
2.何为多态性:对象的多态性:父类的引用指向子类的对象
(或子类的对象赋给父类的引用)
3.多态的使用: 虚拟方法调用有了对象的多态性以后,我们在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法
总结:编译,看左边;运行,看右边
4.多态性的使用前提是:①类的继承关系
②方法的重写
5.对象的多态性,只适用于方法,不适用于属性


