博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java-面向对象
阅读量:5024 次
发布时间:2019-06-12

本文共 1737 字,大约阅读时间需要 5 分钟。

什么是面向对象?

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

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

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

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

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

  扯远了,回归主题……

  很多人会说面向对象是:

    封装

    继承

    多态

  或是balabala……

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

 

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

    

    

转载于:https://www.cnblogs.com/nanjingwangbo/p/5491014.html

你可能感兴趣的文章
连接Linux下 XAMPP集成环境中部署的禅道的数据库MariaDB
查看>>
Java操作Excel和Word
查看>>
Oracle 体系结构之ORACLE物理结构
查看>>
ORA-12538: TNS: no such protocol adapter
查看>>
盒子模型
查看>>
局域网协议
查看>>
[HNOI2012]永无乡 线段树合并
查看>>
Spring整合hibernate:3、使用XML进行声明式的事务管理
查看>>
SqlServer之Convert 函数应用格式化日期(转)
查看>>
软件测试领域中的10个生存和发展技巧
查看>>
Camera前后摄像头同时预览
查看>>
HDU 1856
查看>>
课堂作业01--架构师的职责
查看>>
iOS计算富文本(NSMutableAttributedString)高度
查看>>
2017/09/15 ( 框架2)
查看>>
SQL中join的用法
查看>>
dapper使用时性能优化
查看>>
POJ 2001 Shortest Prefixes(字典树)
查看>>
【Silverlight】汉诺塔游戏,带AI
查看>>
BigDecimal的引入和概述
查看>>