什么是面向对象编程

什么是面向对象编程,第1张

一前言

其实不管是java还是net都是属于面向对象程序设计语言,归根结底,它们都离不开面向对象,所以什么是面向对象呢,意思就是object-oriented将对数据和对数据的 *** 作作为一个相互依赖的关系、不可分割的整体,才用信息隐蔽技术和数据抽象,更简单地解决现实当中的问题!

上面的概念比较抽象,这里涉及到一个类的问题,通俗地说,就是把一个事物抽象出来成为类,而这个类的实例就是对象,类跟对象的关系其实就相当于设计图纸跟实物之间的关系,面向对象其实就是面向于类的!

面向对象的三大特性:封装、继承、多态!

二基本概念

1封装

封装的意思其实很简单:就像你使用优盘一样,优盘被封装在一个盒子里面,你根本不需要知道它是怎么工作的,你只要知道怎么用它就行了,当然用的时候是使用USB接口,对封装的类进行调用的时候也是用特定的接口进行调用的!

2继承

继承是指一个对象从另一个对象中获得属性的过程是面向对象程序设计的三大原则之二,它支持按层次分类的概念例如,波斯猫是猫的一种,猫又是哺乳动物的一种,哺乳动物又是动物的一种如果不使用层次的概念,每个对象需要明确定义各自的全部特征通过层次分类方式,一个对象只需要在它的类中定义是它成为唯一的各个属性,然后从父类中继承它的通用属性因此,正是由于继承机制,才使得一个对象可以成为一个通用类的一个特定实例一个深度继承的子类将继承它在类层次中的每个祖先的所有属性

继承与封装可以互相作用如果一个给定的类封装了某些属性,它的任何子类将会含有同样得属性,另加各个子类所有得属性这是面向对象程序在复杂性上呈线性而非几何增长的一个重要概念新的子类继承其所有祖先的所有属性子类和系统中的其他代码不会产生无法预料的交互作用

3多态

多态是指一个方法只能有一个名称,但可以有许多形态,也就是程序中可以定义多个同名的方法,用"一个接口,多个方法"来描述可以通过方法的参数和类型引用

三封装、继承、多态之间的关系

下面我给你讲一个封装、继承、多态组合起来的例子:

在由封装,继承,多态所组成的环境中,程序员可以编写出比面向过程模型更健壮,更具扩展性的程序经过仔细设计的类层次结构是重用代码的基础封装能让程序员不必修改公有接口的代码即可实现程序的移植多态能使程序员开发出简洁,易懂,易修改的代码例如:汽车

从继承的角度看,驾驶员都依靠继承性来驾驶不同类型(子类)的汽车,无论这辆车是轿车还是卡车,是奔驰牌还是菲亚特牌,驾驶员都能找到方向盘,手刹,换档器经过一段时间驾驶后,都能知道手动档与自动档之间的差别,因为他们实际上都知道这两者的共同超类:传动装置

从封装的角度看,驾驶员总是看到封装好的特性刹车隐藏了许多复杂性,其外观如此简单,用脚就能 *** 作它发动机,手刹,轮胎大小的实现对与刹车类的定义没有影响

从多态的角度看,刹车系统有正锁反锁之分,驾驶员只用脚踩刹车停车,同样的接口可以用来控制若干种不同的实现(正锁或反锁)

这样各个独立的构件才被转换为汽车这个对象的同样,电脑培训>

面向对象程序设计的三大特征是多态(Polymorphism)、继承(Inheritance)、封装(Encapsulation)。

1、多态

多态核心的思想就是,父类的引用能够指向子类的对象,或者接口类型的引用能够指向实现该接口的类的实例。多态会这样的原因是因为子类就是父类。

2、继承

Java是单继承的,这一点和C++有所不同,这也就意味着,一个类只能继承于一个类,被继承的类叫父类,或者是叫基类baseclass,继承的类叫子类。

Java当中的继承使用关键字extends。可是,一个类能够实现多个接口,多个接口之间用逗号进行分割。实现接口使用关键字implements。

3、封装(Encapsulation)

封装比较的简单,类包含了方法和数据,将方法和数据放在一个类当中,就构成了封装。封装的优点:将变化隔离,便于使用,提高重用性,提高安全性;封装的缺点:将变量等使用private修饰,或者封装进方法内,使其不能直接被访问,增加了访问步骤与难度!

面向对象程序设计的六大基本原则:

1、单一职责原则

不要存在多于一个导致类变更的原因,即一个类只承担一个职责。

2、开放-封闭原则

对扩展开放,对修改封闭。无论模块多么封闭,都会存在一些无法对之封闭的变化,既然不能完全封闭,我们必须对于自己设计的模块应该对哪种变化封闭做出选择,必须先猜测出最有可能发生的变化种类,然后构造抽象来隔离这些变化。

3、迪米特原则

一个对象应该对其他对象有最少的了解,减少类与类之间的耦合。如果两个类不必彼此通信,那么这两个类就不应当发生直接的相互作用。类与类之间的耦合越弱,越有利于复用,一个处于弱耦合的类被修改,不会对有关系的类造成波及。

4、依赖倒转原则

上层模块不要依赖底层模块,它们都要依赖于抽象。抽象不能依赖于细节,细节要依赖于抽象。面向接口编程,不要面向实现编程。

5、里氏替换原则

子类型必须能够替换掉它们的父类型。只有当子类可以替换掉父类,软件单位的功能不受影响时,父类才能真正的被复用,而子类也能够在父类的基础上增加新的行为。

6、接口隔离原则

客户端不应该依赖于它不需要的接口,一个类对一个类的依赖应该建立在最小的接口上。不要让与自己无关的修改影响到自己功能模块的变化。

以上就是关于什么是面向对象编程全部的内容,包括:什么是面向对象编程、面向对象程序设计的三大特征是什么、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9498974.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存