投稿 资料上传 搜索
您现在的位置是: 首页 > 文章 > 正文

Java面向对象的概念以及面向对象的特征

前言

面向对象简称 OO(Object Oriented),后期发展出现了面向对象分析(OOA)、 面向对象设计(OOD)、面向对象程序设计(OOP)等新的系统开发方式。

对于Java语言来说,一切皆对像。每一个对象就代表了某个具体的操作。一个个可以独立的或者从其他地方继承过来的对象组合起来就成了完整的程序设计。对象之间通过相互作用传递信息,从而实现程序开发。 

什么是对象

Java是面向对象编程语言,其程序设计核心就是对象。对象就是一个一个现实中实体,每一个对象都对应一个实体,反过来说现实中的每一个实体都是一个对象,他是一个比较具体的概念。

对象的特点:

  1对象具有属性和行为。

  2. 对象具有变化的状态。

  3. 对象具有唯一性。

  4. 对象都是某个类别的实例。

  5. 一切皆为对象,真实世界中的所有事物都可以视为对象。

举例说,在真实世界中学校里,会有学生和老师等实体,学生有学号、姓名、所在班级等属性(数据),学生还有学习、提问、吃饭和走路等操作。学生只是抽象的描述,这个抽象的描述称为“类”。在学校里活动的是学生个体,即张同学、李同学等,这些具体的个体称为“对象”,“对象”也称为“实例”。  

面向对象的三大核心特性

面向对象开发模式有利于人们开拓思维,在具体的开发过程中便于程序的划分,方便程序员分工合作,提高开发效率。面向对象程序设计有以下优点 。

  1. 可重用性:代码重复使用,减少代码量,提高开发效率。下面介绍的面向对象的三大核心特性(继承、封装和多态)都围绕这个核心。

  2. 可扩展性:指新的功能可以很容易地加入到系统中来,便于软件的修改。

  3. 可管理性:能够将功能与数据结合,方便管理。

 面向对象具有继承、封装和多态 3 个核心特性。

继承性

简单的说就如同现实中的子女继承父母拥有的所有财产,但是程序中的继承性是指子类拥有父类的全部特征和行为,这是类之间的一种关系。Java 只支持单继承。

一个语文老师类和一个数学老师类,如果不采用继承方式,那么两个类中需要定义的属性和方法如下图:  


可以看到语文老师类和数学老师类中的许多属性和方法相同,这些相同的属性和方法可以提取出来放在一个父类中,这个父类用于被语文老师类和数学老师类继承。当然父类还可以继承别的类 。如下图:


总结继承的特征可用如下树形图表示:



学校主要人员是一个大的类别,老师和学生是学校主要人员的两个子类,而老师又可以分为语文老师和数学老师两个子类,学生也可以分为班长和组长两个子类 

使用这种层次形的分类方式,是为了将多个类的通用属性和方法提取出来,放在它们的父类中,然后只需要在子类中各自定义自己独有的属性和方法,并以继承的形式在父类中获取它们的通用属性和方法即可。

封装性

 封装是将代码及其处理的数据绑定在一起的一种编程机制,该机制保证了程序和数据都不受外部干扰且不被误用。封装的目的在于保护信息。他有以下优点:

  1. 保护类中的信息,它可以阻止在外部定义的代码随意访问内部代码和数据。

  2. 隐藏细节信息,一些不需要程序员修改和使用的信息,比如取款机中的键盘,用户只需要知道按哪个键实现什么操作就可以,至于它内部是如何运行的,用户不需要知道。

  3. 有助于建立各个系统之间的松耦合关系,提高系统的独立性。当一个系统的实现方式发生变化时,只要它的接口不变,就不会影响其他系统的使用。例如 U 盘,不管里面的存储方式怎么改变,只要 U 盘上的 USB 接口不变,就不会影响用户的正常操作。

  4. 提高软件的复用率,降低成本。每个系统都是一个相对独立的整体,可以在不同的环境中得到使用。例如,一个 U 盘可以在多台电脑上使用。

Java 语言的基本封装单位是类。由于类的用途是封装复杂性,所以类的内部有隐藏实现复杂性的机制。Java 提供了私有和公有的访问模式,类的公有接口代表外部的用户应该知道或可以知道的每件东西,私有的方法数据只能通过该类的成员代码来访问,这就可以保证不发生不想看到的事情。 

多态性

 面向对象的多态性,即“一个接口,多个方法”。多态性体现在父类中定义的属性和方法被子类继承后,可以具有不同的属性或表现方式。多态性允许一个接口被多个同类使用,弥补了单继承的不足。


转载于:

文章标签:
阿里云服务器采购季
给作者打赏,鼓励TA抓紧创作!
评论