关于Java中面向对象编程的理解
在Java中 面向对象编程 的理解
(1)通过类:类是封装对象的属性和行为的载体,反过来说具有相同属性和行为的一类实体被称为类。
(2)封装:是面向对象编程的核心思想,将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想,用户只能通过对外提供的接口访问数据。
(3)多态:是指允许不同类的对象对同一消息做出响应,根据对象创建实例的不同调用不同的方法,本质是编译时和运行时才决定对象的行为。
这里分为两个知识点:静态分派,方法的重载,编译时决定
动态分派,方法重写,运行时决定。
多态的特点:可替换性,灵活性,扩展性,统一编码风格。
(4)继承:继承是指从已有的类中派生新的类,新的类能够吸收已有类的数据属性和行为,并能够扩展新的功能。
特点:可扩展性,代码复用。
抽象类和接口的出别:抽象类单继承,能声明能实现,最大应用场景,模板方法模式的设计。
接口:多继承,只能声明,面向接口编程,spring。
面向对象的目的,代码的可重复性、可扩展性、可靠性。
面向对象的特征一:封装和隐藏
-
一、问题的引入:
-
当我们创建一个类的对象以后,我们可以通过“对象.属性”的方式。对对象属性进行赋值。这里,赋值操作要受到
-
属性的数据类型和存储范围的制约。除此之外,没有其他条件的制约。但是在实际的问题中,我们往往需要给属性赋值
-
我们可以避免用户使用“对象.属性”的方式对属性进行赋值。则需要将属性声明为私有的(private)
-
二、封装性的体现
-
我们将类的属性的私有化(private),同时,提供公共的(public)方法来获取(getXxx)和设置(setXxx)该属性的值。
-
拓展:封装的体现:①如上:不对外暴露私有的属性
-
②不对外暴露私有的方法
-
③单例模式 ...
-
三、封装性的体现,西药权限修饰符来配合。
-
1.Java规定的4种权限(从小到大排列):private、缺省、protected、public
-
2.4种权限可以同来修饰类及类的内部结构:属性、方法、构造器、内部类
-
3.具体的,4种权限都可以用来修饰类的内部结构:属性、方法、构造器、内部类
-
特别注意: 修饰类只能使用:缺省、public
-
总结封装性:Java提供了4种权限修饰符来修饰来修饰类和类的内部结构(属性、方法、构造器、内部类),体现类及类的结构在被调用时可见性的大小
面向对象特征之 二 : 继承性
-
一、继承性的好处
-
① 减少了代码的冗余,提高了代码的复用性
-
② 便于功能的拓展
-
③ 为了多态性的使用,提供了前提
-
二、继承性的格式:class A extends B {}
-
A:子类、派生类、subclass
-
B:父类、超类、基类、superclass
-
2.1体现:一旦子类A继承父类B以后,子类A中就获取了父类B中声明的结构:所有的属性、方法
-
特别的:父类中声明的private的属性或方法,子类继承父类以后,仍然认为获取了父类中私有的结构
-
只是因为封装性的影响,使得子类不能直接调用父类的结构而已。
-
2.2子类继承父类以后,还可以声明自己特有的属性和方法。实现功能的拓展。
-
子类和父类的关系,不同于子集和集合的关系。
-
extend 延展、拓展
-
三、Java中关于继承性的规定
-
1.一个类可以被多个子类继承
-
2.Java中类的单继承性:一个类只能有一个父类
-
3.子父类是相对的概念。
-
4.子类直接继承的父类,称为:直接父类。子类间接继承的父类:称为间接父类
-
5.子类继承父类以后,就获取直接父类和所有间接父类中证明的属性和方法。
-
四、1.如果我们没有显式的声明一个类的父类的话,则此类继承与java.lang.Object类
-
2.所有的java类(除java.lang.Object类之外)都直接或间接继承于java.lang.Object类
-
意味着,我们所有的java类具有java.lang.Object中声明的功能。
面向对象的三大特征之一:多态性
-
1.理解多态性:可以理解为一个事物的多种形态。
-
2.何为多态性:
-
对象的多态性: 父类的引用指向子类的对象(或子类的对象赋给父类的引用)。
-
3.多态的使用:虚拟方法的调用
-
有了对象的多态性以后,我们在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法
-
总结:编译看左边,运行看右边。
-
4.多态性的使用前提:① 要有类的继承关系 ② 子类要有父类方法的重写(不然没有必要使用父类的引用指向子类的对象)
-
5.对象的多态性,只适用于方法,不适用于属性;
上一篇: JAVA面向对象的思想和编程
推荐阅读