面向对象那点儿事儿

  长期以来,一直听大家都在说面向对象和面向过程,一直也没太懂什么意思,一番研究过后好像有一点懂了,个人见解,说错请帮我纠正。

  所谓面向过程,打个比方,就好像你生病了,你也不知道到底什么病,反正医生说了,第一步你要先吃两颗药丸,第二步你要打一针,第三步你留下来输液吧。这整个流程走完,恭喜你,你的病好啦,这事儿也就算完,而像这样分步骤一步两步三步的去治病,整个过程按流程走,这就是一个面向过程的思想。

  那什么又是面向对象呢?就好像今天有一群人生病了,来到医院,医生让这一群人排排站,然后拎出来三个人,对护士A说,这三个人是感冒,你照着感冒的治疗方案给他们开药吧,再拎出来两个人,对护士B说,这两个人是拉肚子,你照着拉肚子的治疗方案给他们开药吧;再然后对护士C说,剩下的人都是绝症,带他们去太平间蹲着吧。这样本来是一大群人,医生把他们分几类,很快就解决完所有问题了。面向对象的两大关键,一个是类,一个便是对象,在刚刚的事例中,感冒这一病便是一个类,拉肚子这一病也是一个类,绝症也是一个类,而具体患病的人就是一个对象,每一个类对应的治疗方案便是类的一个属性,具体治疗措施便是方法。医生将所有病人分为多个类,每个类的所有人再同一治疗,大家并不知道具体是怎么治疗的,反正你感冒了医生就让你去找A护士,这就是面向对象。

  面向对象有什么优点呢?通常,大家谈起面向对象,总会说到三个词, 继承、封装、多态,这边上面向对象的优点。

  什么是继承,其实就是字面意思,儿子继承老爸的,继承的一大优势就是省事儿,方便,就像你爸要是马云你就可以少奋斗30年一样;具体来说,就像你感冒发烧了,那针对这一个问题的治疗方案里面包含了治疗发烧的治疗方案,这时候感冒发烧里面就可以不用再在这里面写发烧的治疗方案了啊,直接继承发烧这个类,也就继承到了发烧的治疗方案了,这个时候,感冒发烧就成了发烧的子类,而发烧就成了感冒发烧的老爹。

  什么又是封装?所谓封装就是把共同的特征封装起来单独成类,而具有这一特征的所有类直接继承这个通用类就好,这样就不用在每一个类中都写相同的代码,一旦这些通用的代码需要作出一定的修改,你也只需要改通用类就好,不需要每个类都去改了,即将低了冗余度,又增加了通用性,多好!!封装不仅可以封装类,也可以封装方法,一样的道理。就程序员的强迫症来说,封装过的代码比没封装过的代码美太多(就如同满身赘肉的胖妇人和马甲线女神的区别)。

  最后说多态,明明是父类变量,却指向子类对象,这就是多态,此时父类变量可以调用子类中重写了的父类方法,当然子类自己的方法父类是无法调用的,这样可以做到的是同一种类型同一种方法,多种实现,但是子类变量不能指向父类对象,先不说其他的问题,你既然要写子类一定就是父类不能满足你的需求,既然这样你定义了子类变量却用来指向父类对象。。。。那你写子类干嘛。。。。

时间: 2024-11-05 17:03:30

面向对象那点儿事儿的相关文章

关于‘文件存储格式’和‘文件内容格式’需要掰一掰的那点儿事儿

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 先来说个例子,来引用题中的问题,后面会尽可能列出大把的实际存在的关于这俩家伙的事儿,以供参考. 当我们录了一段语音并存成 .wav 文件后,就可以

30分钟带你熟练性能优化的那点儿事儿(案例说明)

前言 性能优化是数据库运维人员和中.高级软件开发人员的必备技能,很多时候老司机和新司机的区别就在写出的东西是否优化. 博主接触过近千家客户的系统,这些系统都存在着各种各样的性能问题.那么如何透彻的了解我们的数据库性能问题?今天就用一个案例来说明性能优化的那点儿事儿. PS:很多技术人员对优化有一套自己的理解,在阅读本文前请放下你自己的理解. 正所谓:跟着博主不迷路,博主带你上高速! 点开案例跟着博主的思路看看优化这些事儿 : 本文案例Demo 了解系统环境 优化首先要知道数据库在一个什么样的硬件

还能不能愉快地起一个web服务啦?——1st Step!白话http和代码交互的那点儿事儿~

学写python的时候,我们多多少少都接触到了web程序,然而你有没有想过,当浏览器发送了一个http请求时,等待接收这个请求的后端代码是一种什么样的思想感情? 就像下面这张图里画的一样,后端也许是一段java代码,也许是php代码,当然,如果代码出自我手,最可能的还是一段python代码.这就好比,当你在社交软件上给一个陌生人发了一条消息,对面这个人可能是英国人.印度人也有可能是一只羊或者一只狗...那么问题来了,他们怎么知道你在说啥?当然了,在web服务的世界里没有现实中那么复杂,我们不需要

Android 有关爬墙头儿的那点儿事儿 - 眼下出行难,不光车多、路还窄呀!

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 本篇有可能违禁,但有一点是绝不会违禁的,看 Android 离线文档,记得禁掉网卡或拨掉网线,就能正常看啦!!! 1.Android SDK Ma

python wraps那点儿事儿

 一个需求的实现 当前,我们有这么一个小的需求:通过装饰器来计算函数执行的时间 计算出这个函数的执行时长 def add(x,y):   # add = TimeIt(add)     time.sleep(1)     'this is add'     return x + y 装饰器实现 import time import datetime from functools import wraps class TimeIt:     def __init__(self,fn):      

Groovy 字符串那点儿事儿

可以直接用+ assert 'ab' == 'a' + 'b' 支持多行 def aMultilineString = '''line one line two line three''' out: Fri Jan 03 11:14:58 CST 2020: INFO: line oneline twoline three 如果定义多行字符串时有缩进,可以去掉,下面俩方法就行 import java.lang.Stringimport java.lang.GStringString#stripI

典型用户及场景描述

典型用户: 姓名:茉莉 性别,年龄:女,20岁 职业:在校大学生 收入:不确定 知识层次和能力:本科生,熟悉各种智能电子设备的操作,熟练各种手游. 生活/工作状况:学习,恋爱,兼职,游玩,天天都有事情做. 动机.目的和困难:动机是找办法打发时间,目的是打发等车的时间,困难是一个人等车无聊没事儿干. 用户偏好:听歌,看书 用户比例:不确定 典型场景:假期回家在火车站候车,没事儿干,太无聊. 典型描述:看着别人都在忙着自己的事情,却找不到一个人聊天.后来通过极速蜗牛打发间. 场景描述: 人物:茉莉

阅读《RobHess的SIFT源码分析:综述》笔记

今天总算是机缘巧合的找到了照样一篇纲要性质的文章. 如是能早一些找到就好了.不过“在你认为为时已晚的时候,其实还为时未晚”倒是也能聊以自慰,不过不能经常这样迷惑自己,毕竟我需要开始跑了! 就照着这个大纲往下走走,说不定会有意想不到的收获,然后把多视点的问题加进去,或许应该能有所成效. 嗯,其他的太多的东西想来也无用. 我觉得现在比较重要的事情是,顺着这样一篇文章继续我要做的东西. 原文<RobHess的SIFT源码分析:综述>地址: http://blog.csdn.net/masibuaa/

《上古天真论》第三讲文字版

上古天真论篇第三讲 主讲:徐文兵  主持:梁  冬 播出时间:2008-12-20  23:00—24:00      经文:圣人之教下也,皆谓之虚邪贼风,避之有时:恬淡虚无,真气从之,精神内守,病安从来. 梁冬:重新发现中医太美,大家好!欢迎收听今天晚上的国学堂.鄙人是梁冬,在过去的两周里面里呢,我们用了两个小时,每周一个小时,轻轻松松地,啊,认认真真地讲了<黄帝内经>的<上古天真论>第一篇的前50个字,而且呢,我觉得,这次可能是我经历过最愉快的一份工作,因为这份工作可以让我每周