java知识总结——面向对象(一)

java知识总结——面向对象(一)

  • 说明
    • 一、面向对象与面向过程
    • 二、面向对象的特征
    • 三、面向对象开发方式的优点
    • 四、继承
    • 五、组合与继承的区别
      • 选择组合还是继承时遵循的原则

说明

本文仅仅为了博主面试时方便查阅与梳理相关知识,如果有错误与不到位的地方,欢迎大佬指点改正,谢谢!
阅读书籍:《java程序员面试笔试宝典》

一、面向对象与面向过程

面向对象是当今软件开发方法的主流方法之一,它是把数据及对数据的操作方法放在一起,作为一个相互依存的整体,即对象。对同类对象抽象出其共性,即类,类中的大多数数据,只能被本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。
面向过程是一种以事件为中心的开发方法,就是自顶向下顺序执行,逐步求精,其程序结构是按功能划分为若干个基本模块,这些模块形成一个树状结构,各模块之间的关系也比较简单,在功能上相互独立,每一个模块内部都是由顺序、选择和循环3种基本结构组成,其模块化实现的具体方法是使用子程序,而程序流程在写程序时就已经决定。
面向对象与面向过程之间的不同点
1、出发点不同。
2、层次逻辑不同。
3、数据处理方式与控制程序方式不同。
4、分析设计与编码转换方式不同。

二、面向对象的特征

面向对象的主要特征包括抽象、继承、封装和多态。
1、抽象
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。
抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。
抽象包括两个方面:一是过程抽象;二是数据抽象。
2、继承
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确的表述共性的方法。

类继承:对象的一个新类可以从现有的类中派生,这个过程称为类继承。

新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。
派生类可以从它的基类那里继承方法和实例变量,并且派生类可以修改或增加新的方法使之更适合特殊的需要。
3、封装
封装是指将客观事物抽象成类,每个类对自身的数据和方法实行保护。类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
4、多态
多态是指允许不同类的对象对同一消息做出响应。多态包括参数化多态包含多态。多态性语言具有灵活、抽象、行为共享、代码共享等优势,很好地解决了应用程序函数同名问题。

三、面向对象开发方式的优点

1、较高的开发效率
面向对象的开发方式接近于人的思维,可以把现实的事务直接映射为开发的对象。同时,由于面向对象的开发方式可以通过继承或者组合的方式来实现代码的重用,因此可以大大地提高软件的开发效率。
2、保证软件的鲁棒性

什么是鲁棒性br> 鲁棒性(robustness)就是系统的健壮性。它是指一个程序中对可能导致程序崩溃的各种情况都充分考虑到,并且作相应的处理,在程序遇到异常情况时还能正常工作,而不至于死机。

由于面向对象的开发方法有很高的重用性,在开发的过程中可以重用已有的而且在相关领域经过长期测试的代码,因此,自然而然地对软件的鲁棒性起到了良好的促进作用。
3、保证软件的高可维护性
面向对象的开发方式使得代码的可读性非常好,面向对象的设计模式也使得代码结构清晰明了。同时针对面向对象的开发方式,已经有很多成熟的设计模式使程序在面对需求的变更时,只需要修改部分的模块就可以满足需求,因此维护起来十分方便。

四、继承

继承是面向对象中的一个很重要的特性
作用:通过继承,子类可以使用父类中的一些成员变量与方法、从而提高代码的复用性,提高开发效率。

在java语言中,被继承的类叫基类(superclass)或父类,继承基类或父类的类叫做派生类或子类(subclass)。

格式:继承是通过extends关键字实现的。格式如下:

特性
1、java语言中,不支持多继承,子类最多只能有一个父类,但是可以通过实现多个接口来达到多重继承的目的
2、子类只能继承父类的非私有(public与protected)成员变量和方法
3、当子类中定义的成员变量和父类中定义的成员变量同名时,子类中的成员变量会覆盖父类的成员变量,而不会继承。
4、当子类中的方法与父类中的方法有相同的函数签名(相同的方法名,相同的参数个数与类型),子类将会覆盖父类的方法,而不会继承。

五、组合与继承的区别

组合与继承是面向对象中两种代码复用的方式
组合是指在新类中里面创建原有类的对象,重复利用已有类的功能。
继承是面向对象的主要特性之一,允许设计人员根据其他类的实现来定义一个类的实现。
组合与继承都允许在新的类中设置子对象,只是组合为显式,继承为隐式。

组合与继承存在着对应关系:组合中的整体类和继承中的子类对应,组合中的局部类和继承中的父类对应。

选择组合还是继承时遵循的原则

1、如果两个类之间是“is-a”的关系,可以使用继承,但是不要单纯地为了实现代码的重用而使用继承。
过多的使用继承会破坏代码的可维护性,当父类被修改时,会影响到所有继承自它的子类,从而增加程序的维护难度和成本。
2、如果两个类之间没有“is-a”的关系,可以通过接口与组合的方式来达到相同的目的。
例如设计模式中的策略模式,采用接口与组合的方式比采用继承的方式具有更好的可扩展性。

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91338 人正在系统学习中

来源:花开花落 花满楼

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年9月16日
下一篇 2019年9月16日

相关推荐