由于课程需要,学习Java和面向对象也已经好几个月了,今天来浅浅的谈论一下我对面向对象的理解。

  什么是面向对象?

  如果你百科或者wiki一下,倒是能翻出一大堆来。如果你嫌这些答案不够深沉,不够装逼,甚至还可以知乎一下云云。

  但是,你有没有想过,学习程序设计是为了什么?

  从正式开始接触计算机到现在也已经两年了,我再也翻不下去一堆堆厚重的书籍和资料,原因在于它们只是为了写更多的文字,却很少能够把一个简单的概念解释清楚。

  我很欣赏一个程序员的本质就是单纯,老老实实写写代码本身就是一件很开心的事了(对此,我深信Java让简单主义者开心不起来),而不是像个学术研究者一样,捧着一堆文献来研究,甚至还要把自己的思维装订成册才好。

  简单说,我能够最快掌握一门技术,然后写出自己想要实现的东西,这便是目的(当然,也有以钱途为目的的人)。

  扯远了,回归主题……

  很多人会说面向对象是:

    封装

    继承

    多态

  或是balabala……

  但是,你真的了解面向对象的本质了吗?请确定你真的了解了,而不是为了学习一门语言而不得不硬着头皮接触面向对象。

  为了不让冰冷的技术词汇产生距离感,我用女娲造人这个例子来说明面向对象是个什么东东。

  首先,盘古开天辟地……(此处省略2000字)

  女娲一个人实在闷得慌(这也难怪,是个人都会寂寞,除了默默忍受寂寞的程序员们 = =#),尼玛就突发奇想,搞出了个造人大计!

  ps:如果她知道现在的人是这副德行,尼玛肯定后悔得像买了切糕一般(局外话)。

  但是,人是如何造成的呢?再牛逼的女娲也像从前小时候玩橡皮泥的我们一样,搓来搓去没个名堂,最终还是需要个模板,是个人都知道,这个模板就是她自己。

    关键点1:面向对象的基本设计原则就是需要一个模板(或称为蓝图),在程序设计语言里,我们把这个模板称为类。

  好了,有了一个模板,女娲就可以对着模板来造人了,造出的人也就是一个模板(类)的对象。

  我们知道,人有一些基本特征:一个头,两只眼睛,双手双脚。

  此外,人还有一些基本行为:吃喝嫖赌抽。

    关键点2:此处的基本特征就是一个类的属性,基本行为就是类的方法。 

  有人问了,为什么不需要皮肤,指甲等属性,或奔跑、磕头等行为?道理很简单,我只需要知道有用信息,如同有主机、显示器,鼠标键盘,可玩游戏我便能明白这是一台电脑。

  模板有了,一些基本的构造条件有了,剩下考虑的就是量产了,所谓的量产也就是生产类的对象,造出千千万万个人(真伟大~!)。

  其实,人还有个不愿意公开承认的特性,就是爱“犯贱”。甚至以挖苦别人,或者对他人身体造成伤害为乐趣。为了避免一些严重伤害,我们只能把危机生命的心脏等器官放到身体内部了。

    关键点3:把基本特征(属性)保护好,防止他人随意践踏,这叫做封装。

  当然,随着当事者所处的环境不同,保护措施也不一样,正如同小孩想滑旱冰就需要护膝是一样的道理。在类中,我们要依照自己的经验完善好封装这一概念。

  人活在这世上,是不公平的,有些人天生就是高富帅,富二代,官二代,why?因为他们有个牛逼的爹。而还有些人,却生的一副挫样,还要替父还债。

    关键点4:类似与这种行为,我们叫做继承。一个子对象,是具有父类特征和行为的,当然你可以通过各种方式转变。(好好写代码,终成高富帅)

  人有了,人造人这种令人难堪的事也发生了。但是却还出现了男人和女人的区别,这叫人如何是好。因为有了男女,不仅让世界变得和谐了,却也……哎,凡事都有两面性嘛。

  我们可以说,一个男人是一个人,也可以说一个女人是一个人。但男女不论从某某结构还是××来说都是有所差别的,但基本特征不变。

    关键点5:都有了上层的基础概念,而存在具体的细节实现不同,这种行为我们管它叫做多态。

  我不得不说,我要写完了,一行代码都没有。对于新手而言,希望看到更多的并不是代码,而是一种思想上的东西,甚至是,不愿意别人全部都给你想透彻,而是能够有所启发。因此,请老鸟越过,新人要喷就喷,要拍就拍,经过那么多厚部头的折磨,我已经蛋定了……

转载于:https://www.cnblogs.com/nerxious/archive/2012/12/13/2816470.html

浅谈面向对象与女娲造人相关推荐

  1. 趣味教程:从女娲造人谈类、属性、方法及实例

    前言:相信大家都听说过女娲造人的故事,不过细节可能不会太清楚,我现在略述如下,您可要仔细听哦,这和我们今天要聊的主题有莫大的关系呀. 女娲是一个人身龙尾的女神.盘古开天辟地以后,也就在天地间到处游历. ...

  2. 『软件工程13』浅谈面向对象方法,统一建模语言UML

    浅谈面向对象方法UML 一.UML的含义 二.UML的主要内容 1.UML的概念模型 2.UML概念模型图例 三.UML的基本构造块 1.UML中的事物 (1)UML中的四种事物 (2)UML中各种事 ...

  3. 设计模式——简单工厂模式之女娲造人

    目录 一.定义 二.解决的问题 三.模式结构图 四.具体实例(女娲造人) 4.1 UML类图 4.2 代码 4.3 运行结果 一.定义 简单工厂模式又称为静态工厂方法模式,它属于类创建型模式. 在简单 ...

  4. 设计模式(java)—— 简单工厂模式之农场,女娲造人

    1.一个农场专门负责种植各种水果,比如苹果.草莓.葡萄等,任何水果都可以种植.生长和采摘.此外,每一种水果还有自己的特性,如:苹果是多年生具有树龄的属性,葡萄则分为有籽或无籽等.农场生产的水果都送入超 ...

  5. 面向对象与上帝造人——类与对象(java篇)

    转载我老板的文章 面向对象与上帝造人--类与对象(java篇) 学习和使用java断断续续很多年了,头脑中关于"面向对象编程"的概念总是偏向于使用java来诠释.我是个半路出家的程 ...

  6. 【c++开篇】浅谈面向对象与面向过程(举例说明)

    浅谈面向对象与面向过程 前言:刚接触C++第一时间,都会经常听到这样一话:C语言面向过程,C++面向对象.在老师模拟面试时,问道你对面向对象与面向过程的认识时,我有点懵答的不是很完整,刚好C++开篇写 ...

  7. 设计模式(java)--简单工厂模式之女娲造人.水果农场

    女娲抟土造人 话说:"天地开辟,未有人民,女娲抟土为人."女娲需要用土造出一个个的人,但在女娲造出人之前,人的概念只存在于女娲的思想里面. 女娲造人,这就是简单工厂模式的应用.  ...

  8. 工厂模式(女娲造人)

    在女娲补完天之后,发现世界上有湖泊,河流,树木,动物,却没有掌管他们的东西,于是乎,女娲开始造人. 搭起锅炉(造人工厂),捏吧小人,放入锅炉. 啊呀,火青了,造一个白种人 啊呀,火重了,造一个黑种人 ...

  9. 女娲造人?工厂模式?

    阅读文本大概需要 8 分钟. 前言 明天就是元旦了,久一祝读者朋友元旦快乐呀.元旦假期,久一打算把Vue.js撸完,跟着我的脚步,感兴趣点击链接  看到倪升武大佬写了一篇不错的文章,分享给你,觉得文章 ...

最新文章

  1. J20170524-hm
  2. 基于zookeeper的高可用集群
  3. matlab dmodce,吧里有没有大神可以教我怎么改dmodce函数,用的matlab2012a版本
  4. 面试必问之JVM原理
  5. 信息学奥赛一本通 1002:输出第二个整数 | OpenJudge NOI 1.1 02
  6. 拜登政府冻结加密钱包规则以待审查 加密市场或迎来转机
  7. 服务器是怎么工作的?(一)——DHCP工作原理剖析
  8. Linux系统下poll的使用方式
  9. SQL SERVER 2008传递表值参数
  10. 本地Navicat连接虚拟机MySQL
  11. 图像形状特征(六)--AR模型形状描述子
  12. 百面机器学习—11.集成学习(GBDT、XGBoost)面试问题总结
  13. 网络工程师linux题,历年软考网络工程师Linux真题详解
  14. 标准正态分布怎么算_标准正态分布函数的快速计算方法
  15. 一个大一计算机学生的学期总结(2022下半年)
  16. android toast 自定义view,分享Android中Toast的自定义使用
  17. 网桥 网卡网桥有什么区别
  18. 一起学爬虫(Python) — 09
  19. cve-2021-22205复现
  20. 【项目管理】--- 时间管理 --- 缩短工期

热门文章

  1. 2017 ACM-ICPC EC-Final 记录
  2. OO-Unit3-Summary
  3. linux怎么创建用户登录,如何创建一个不能登录的Linux用户名
  4. bugku ctf 杂项 多彩
  5. mybatis oracle两种方式批量插入数据(带序号)
  6. html文字加描边效果,怎么用css给文字加描边?
  7. 《惯性导航》第二版秦永元 知识点总结之一 《第一章 绪论》
  8. 影响钕铁硼性能的因素及方法
  9. electron+vue3全家桶+vite项目搭建【八】集成mockjs模拟数据
  10. java赵莉课后答案_Java程序设计教程(第2版)