转载我老板的文章

面向对象与上帝造人——类与对象(java篇)
学习和使用java断断续续很多年了,头脑中关于“面向对象编程”的概念总是偏向于使用java来诠释。我是个半路出家的程序员,所有的知识都是来源于自学,大部分的东西都是自己体会来的。Perl也有面向对象这一概念的,但是其结构令我总觉得不如java来的漂亮严谨。也曾自学过一阵C++,但是却觉得其中面向对象的应用方法不如java的流畅清爽。看来java的娇悄面容已经将我深深吸引了。
既然这是一篇记述有关本人对java面向对象的心得文章,应该只适合于初学者,高手就请不要嘲笑了。
1.类与对象(从人类和冷酷菜单说起(冷酷菜单——笔者一个朋友的网名)
我喜欢类和对象这两个概念,因为这两个概念几乎可以对应世间的任何事物,在这里请允许我用上帝造人这个比方来说明什么是类和对象。
先说类。“人”就是一个类。如果我们想做一回上帝,造一回人(不是一个男的找到一个女的,然后就……),那么首先得知道人是什么东西。人是什么东西呢,好办,我们可以找一个例子看一看,比如冷酷菜单就是一个活生生的例子:
外观上是一个脑袋,两只手,两条胳膊。
能做什么呢?能说话,能干活,生气了还会打人。
那么好了,“人”这个类和对象就都出来了。类——就是一个数据集合。而“人”这个类就包含了人是包括一个脑袋,两只手,两条胳膊这些特征和说话,干活,打人这些动作的数据集合。类是一个定义,不是活的,就如同我们不能忍受每天同一个“人类”打交道一样,我们必须对人类的一个对像打交道,冷酷菜单就是一个对象了,我在这个blog里头打交道的人类的一个实例化。
因此在java中,对象(object)就是一个类(class)的实例(instance)化。
补充一点,类是有子类的概念的,比如冷酷菜单男性特征明显,应该是属于男人类吧?有关子类的概念我在后边还有提到,到时候就知道冷酷菜单是不是男人了。(>_<)
2.类的属性和方法(看冷酷菜单是如何发狂打人的)
当年我在读哪些干巴巴的教科书时,我百思难解的是类的属性和方法这两个概念,我不能肯定属性是不是变量声明,尤其不明白方法同Basic或者C中的子程序有什么区别(特别是我在学习JavaScript的时候困惑更甚,我几乎不能分辨子程序和类)。当然现在我明白了,看一看冷酷菜单就知道了。
冷酷菜单是人这个类的一个实例,他有脾气,外观等一些属性,他拥有吃饭、说话、打人这些方法。
那么现在我们可以这样理解,属性其实就是在类中声明的一些变量,这些变量能描述类所代表的事物的外观特征等。方法就是类中定义的一堆子程序,当这些程序执行的时候可就有事情发生了,比如冷酷菜单在厕所一蹲那就是大便呢。
好,现在我们可以看看上帝关于人这个类的设计图纸是什么样的了:
人类{
外观之右手;//属性
外观之左手;//属性
……;//属性
身高;//属性
体重;//属性
……;//属性
吃饭{……};//方法
说话{……};//方法
打人{ //方法
抬起外观之右手挥出;
}
}
既然有了图纸我们就可以调查出来冷酷菜单是怎么制造出来,并且如何控制他打人了:
冷酷菜单 = new 人类;//这句的意思是按照图纸生产一个“新”的人类实例。
冷酷菜单.外观之右手 = 瘦骨嶙峋;
冷酷菜单.打人;
Ok,就这样冷酷菜单就挥舞着瘦骨嶙峋的右手开始打人了。简单吧?让我们让他将打人这个动作重复一千次吧!
for(int i = 0; i < 1000; i++ ){
冷酷菜单.打人;
}
累死丫的!

面向对象与上帝造人——类与对象(java篇)相关推荐

  1. 高阶Day1:面向对象,面向过程,类和对象的属性和方法创建

    高阶Day1:面向对象,面向过程,类和对象的属性和方法创建 高级编程学习4个内容: 面向对象 MySQL数据库 网络编程 并发编程 面向过程(POP)与面向对象(OOP): 类和对象: 类名的定义: ...

  2. PHP面向对象编程详解:类和对象

    PHP面向对象编程详解:类和对象 从OOP的视角看,不应区分语言.无论是C++.无论是Java.无论是.net还有更多面向对象的语言,只要你了解了OO的真谛,便可以跨越语言,让你的思想轻松的跳跃.便没 ...

  3. Delphi面向对象学习随笔一:类与对象的关系

    Delphi面向对象学习随笔一:类与对象的关系 作者:巴哈姆特 http://www.cnpack.org (转载请注明出处并保持完整) 工作几年了,总想做点总结,于是有了这篇东西,叫随笔吧呵     ...

  4. 浅谈面向对象与女娲造人

    由于课程需要,学习Java和面向对象也已经好几个月了,今天来浅浅的谈论一下我对面向对象的理解. 什么是面向对象? 如果你百科或者wiki一下,倒是能翻出一大堆来.如果你嫌这些答案不够深沉,不够装逼,甚 ...

  5. java面向对象中的抽象,类与对象

    一.抽象 什么是抽象?将鸽子和麻雀看做是鸟,这是抽象:将整个空调的行为用遥控代替,遥控就可以看做是空调的抽象:将外貌,种族,语言等等形形色色不同的个体看做是人这样一个概念,这也是抽象. 在编程语言中, ...

  6. JavaSE——面向对象基础(思想、类与对象、构造方法、重载、匿名对象)

    第1节 面向对象基础 一.面向对象思想 1.1 概述 面向对象(Object Oriented)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,是一种对现实世界理解和抽象的方法,是计算 ...

  7. C++面向对象(三):类和对象

    C++面向对象:类和对象 会有点长,不过读过就全学会喽!!!!!! 会有点长,不过读过就全学会喽!!!!!! 会有点长,不过读过就全学会喽!!!!!! 1.类与对象的基本概念 1.1 结构与类 1 . ...

  8. 面向对象(一):类和对象

    一.面向对象的基本介绍 面向过程编程最易被初学者接受,其往往用一长段代码来实现指定功能,开发过程的思路是将数据与函数按照执行的逻辑顺序组织在一起,数据与函数分开考虑. 今天我们来学习一种新的编程方式: ...

  9. 什么是面向对象,以及什么是类和对象

    1.1面向过程与面向对象的区别 ​ 面向对象是一种现在最为流行的程序设计方法 .将面向过程与面向对象进行比较. ​ 首先这两个种都是一种编程思维, 在一些简单的动作看来面向过程可能更加容易实现,它不用 ...

最新文章

  1. linux的权限管理以及特殊权限SUID,SGID,Sticky
  2. ⑨⑧借鉴成功者经验,吸取失败者教训
  3. SSH中后台传到前台一个信息集合,tr td中怎么进行排列,类似在一个div里排列书籍...
  4. sap转换成基本订单单位
  5. lt;%%gt;创建内联代码块(表达)
  6. mysql l日志分析,MySQL的截取与分析日志文件
  7. 左耳朵耗子:疫情下的远程办公,聊聊我的经验和实践
  8. 秦小明金融 第五讲 财务模型的搭建与分析
  9. spring quartz 表达式在线生成器
  10. 途家供应链系统架构演进实践
  11. 一文带你了解java stream, 太强了
  12. 三维建模初学者学习方法及资料
  13. 2019电大计算机考试题及答案,2019年最新电大《计算机应用基础》期末考前复习综合练习题(A、B、C)及参考答案资料小抄...
  14. 微服务架构之服务网关
  15. 计算机如何解决卡顿问题,电脑反应慢怎么办?电脑卡顿处理方法
  16. 什么是深度卷积神经网络,基于深度卷积神经网络
  17. 【Android,Kotlin,TFLite】移动设备集成深度学习轻模型TFlite(图像分类篇)
  18. 【QGIS插件安装】buildseg: QGIS plugin for building extraction
  19. CF756div3 vp
  20. 正则表达式的条件用法

热门文章

  1. 中小企业软文推广怎么做?全网天下告诉你
  2. 1-编程常用日语单词积累
  3. 幻灯片软件测试培训,《软件测试培训讲义》PPT幻灯片
  4. 例题4-6 UVA12412 师兄帮帮忙(156行AC代码)
  5. 2003-2019年地级市环境规制-利用地级市工业三废排放量计算(含stata代码)
  6. java中自加(++)和自减(--)运算符
  7. 三级联动:js实现淘宝地址更改
  8. TLA+ TLC模型检查器使用指南(持续更新中)
  9. xDeepFM论文解读(KDD2018)
  10. android java设计模式,Android开发之Java设计模式基础篇