对面向对象的理解

 

一、什么是面向对象语言面试

面向对象语言(Object-Oriented Language)是一类以对象做为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。编程

面向对象语言不少,如一直高居世界编程语言排行榜的Java、C#、C++、Object-C、PHP等等。编程语言

二、面向对象的理解函数

相信不少程序猿,特别是新手,都对面向对象都没有去理解过,但都用过并且可能用的还很熟。学习

最近面试一位刚入行不久的新手,也有半年多的工做经验了,也作过项目,其实也算不上新手,问其面向对象语言的三个基本特征之一,其回答居然是“开源”,真是让我大吃一惊。编码

或许懒、或许感受这些抽象的文字难以学习理解、或许认为工做中用不到,但我想这些最基本知识的仍是要知道的,不要工做3年,积累下的经验可能3天都不到。spa

如下是我的对面向对象的理解:设计

什么是对象? 引用个人一位大学老师的说:一切都是类、一切都是对象3d

如今大部分的面向对象语言是基于类的。对象

他的算是启蒙老师吧,很风趣的一位老师,在学校代课教咱们时,最常常挂在嘴边的就是这句话(只要他的课这句话最少要听到10次以上)。以致于如今想到他,脑海里第一反应就是这句话。

除了红字以上是个人废话,能够忽略。

2.一、对象

一切都是对象

举例:

将一栋房子 比做一个对象 【房子:对象】。 从图上也能够看到这是一种别的房子【房子:类-Class】  如图

这尼玛就是对象,那对象应该包含什么呢,相信只要学过,面向对象的确定都知道面向对象的三项基本特征:封装、继承、多态。

2.二、对象的基本特征一:封装

封装  将各个独立功能设计成一个个独立的单元,造成一个有规划设计的总体,减少耦合,提升内聚,避免牵一发而动全身,方便对程序的修改。

仍是用房子来解释,上面已经有房子的基本类型了,大概样子就是那个熊样。

举例:

房子空间很大,可是若是男男女女有十几人住,并且就一间屋子的话,很不方便,若是吃喝拉撒一个屋,那就成难民营,更况且晚上灯一黑,马上就乱套了,你懂得。

这样,就要想法解决:

工人们出动了,把房子折腾折腾给分红楼上楼下两层,并说明了,一楼吃喝玩乐、二楼休息; 楼上楼下工人们又分别给隔离出几个房间,就把房子这样改造好了,而后男男女女们过来了,你们就能够各自的房间,作爱作的事,并且不会影响到其余了。

这样一个简单的封装就完成 【房子:类-class】是对 【房子两层:部分类-partialclass】的封装  ;【房子两层:部分类-partialclass是对【房间:函数/方法-function】的封装。

2.三、对象的基本特征二:继承

 

继承 发生在两个对象之间,继承对象能够肆意的使用被继承对象的一些属性、方法&函数等;使代码重用,减小编码量,间接减小维护成本。
仍然是房子。
工人们已经给分好楼、作好房间了。这时有我的以为房子应该有个紧急避难所。好吗,尼玛房子都折腾的差很少了,尼玛告诉工人要紧急避难所,工人说这很差搞哇。能够这人有钱,任性,
发话了,要搞必须搞,很差搞也要搞,并且狠狠的搞。工人们就为难了,难道再去给盖一栋有避难所的房子?你们集思广益最终,房子其余都还用着,再给挖个地下室。因而新房子诞生了。
一个简单的继承就出现了 【房子:基类-baseclass】被【新房子:扩展类-ExtensionClass】继承。

2.四、对象的基本特征三:多态
多态 不一样的场合作出不一样相应,有着不一样的特色,能够说是封装的一个实现。
房子已经成型,要对房间进行装修了,工人想法很简单都按照一种样式来,简单方便快捷。可是住房的男男女女们有意见,这就是尼玛客户,各类千奇百怪的想法,有要在承重墙
上开扇窗户的,有要在卫生间装摄像头的、要在厨房里装空调。工人们对能实现就开始开工了,对房子的窗户、地板、墙、楼梯等进行装修。这样装修完房子内部就丰富起来了。
如图
“一种多态的展示”就出来了:
【房子:类-class】 经过 【窗户、地板、墙、楼梯等:属性-Property】体现多态



2.五、面向对象

最后的总结,前面实际上是对象的说明。如今来讲一下面向对象,像开篇提到的一切都是对象。那面向对象有是怎么回事呢难道说是面向一切,真这么理解也不为过。

面向对象是一种对现实世界理解和抽象的方法,对作程序来讲,就是让程序人员,用一种思惟更好的看待万物,在编程中的本质。 OO

相关文章
相关标签/搜索