zoukankan      html  css  js  c++  java
  • 【2015】对面向对象的理解

    1、什么是面向对象语言

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

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

    2、面向对象的理解

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

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

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

    以下是个人对面向对象的理解:

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

    现在大部分的面向对象语言是基于类的。

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

    除了红字以上是我的废话,可以忽略。

    2.1、对象

    一切都是对象

    举例:

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

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

    2.2、对象的基本特征一:封装

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

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

    举例:

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

    这样,就要想法解决:

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

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

    2.3、对象的基本特征二:继承

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

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



    2.5、面向对象

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

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

    自由、人生、意义、执着、残缺美 一个人认真的学习者 --------2015年3月19日
  • 相关阅读:
    女程序员这么少是因为怕秃头?如果你这样想,那就错了...
    使用简单的c#示例的坚实的架构原则
    第1部分设计模式FAQ(培训)
    为什么微软部分类和Java不?
    现实世界四部分类和部分方法的使用
    回到基础:n层ASP的异常管理设计指南。网络应用
    学习c#(第9天):理解c#中的事件(一种见解)
    EventBroker:同步和异步通知组件,松散耦合的事件处理
    潜水在OOP(第一天):多态和继承(早期绑定/编译时多态)
    学习c#(第8天):c#中的索引器(一种实用方法)
  • 原文地址:https://www.cnblogs.com/littlemo/p/4350848.html
Copyright © 2011-2022 走看看