栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

面向对象三大特征

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

面向对象三大特征

1封装:

封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。当我们创建一个类的对象后,我们可以通过"对象.属性"的方式,对对象的属性进行赋值。这里,赋值操作要受到属性的数据类型和存储范围的制约。除此之外,没有其他制约条件。但是,在实际问题中,我们往往需要给属性赋值加入额外的限制条件。这个条件就不能在属性声明时体现,我们只能通过方法进行限制条件的添加。比如添加get。Set方法。 

同时,我们需要避免用户再使用"对象.属性"的方式对属性进行赋值。则需要将属性声明为私有的(private).此时,针对于属性就体现了封装性。

1.1封装性的体现:

Java提供了4种权限修饰符来修饰类及类的内部结构,体现类及类的内部结构在被调用时的可见性的大小。

具体体现:

①我们将类的属性私有化的,同时,提供公共的(public)方法来获取(getXxx)和设置(setXxx)此属性的值

 ② 不对外暴露的私有的方法

 ③ 单例模式   ...

    封装性的体现,需要权限修饰符来配合。

 1.Java规定的4种权限(从小到大排列):private、缺省、protected 、public

 2.4种权限可以用来修饰类及类的内部结构:属性、方法、构造器、内部类

  1. 具体的,4种权限都可以用来修饰类的内部结构:属性、方法、构造器、内部类修饰类的话,只能使用:缺省、public

1.2使用封装的好
  1. 减少了类与 类之间的耦合

  2. 类的内部结构可以自由修改
  3. 封装使得调用者不必关心其内部细节,实现了信息的隐藏

2继承:

继承是从已有的类中派生处新的类,新的类能吸收已有类的数据属性和方法,并扩展新的能力,在本质上是特殊一般的关系,即is a的关系,子类继承父类,说明子类是一种特殊的父类,且具有父类不具有的属性和方法。当实现类用extends关键字继承父类后实现类就具有了父类的属性和方法,但是父类中私有的属性和方法就不会被继承。

2.1体现:

1.一旦子类A继承父类B以后,子类A中就获取了父类B中声明的所有的属性和方法,避免了对一些共同特征的重复描述

2 子类继承父类以后,还可以声明自己特有的属性或方法:实现功能的拓展。

2.2继承性的好处:

① 减少了代码的冗余,提高了代码的复用性

② 便于功能的扩展

③ 为之后多态性的使用,提供了前提

2.3Java中关于继承性的规定:

   1.一个类可以被多个子类继承。

    2.Java中类的单继承性:一个类只能有一个父类

    3.子父类是相对的概念。

    4.子类直接继承的父类,称为:直接父类。间接继承的父类称为:间接父类

    5.子类继承父类以后,就获取了直接父类以及所有间接父类中声明的属性和方法

6如果我们没有显式的声明一个类的父类的话,则此类继承于java.lang.Object类

    7所有的java类(除java.lang.Object类之外)都直接或间接的继承于java.lang.Object类,意味着,所有的java类具有java.lang.Object类声明的功能。


3.多态:

可以理解为一个事物的多种形态。

    对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用),即允许将子类的指针赋予给父类对象。通俗一点就是一个引用变量到底会指向那个类的实例对象,在编译期间是不知道的,在运行期间才知道。

3. 1多态的体现:

1虚拟方法调用

   2.有了对象的多态性以后,我们在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法。

3.2多态性的使用前提:

  ① 类的继承关系  ② 方法的重写

对象的多态性,只适用于方法,不适用于属性。


4.总结:

面向对象编程是利用类和对象编程的一种思想,万物可归为类,类是对事物的高度抽象,不同的事物之间又有不同的关系。一个类行为和属性与其他类的封装关系;子类与父类的继承关系;一个类和多个类的多态关系,万物皆为对象。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/853945.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号