【官方正版】visual c++面向对象编程

47.2元

包邮

(需用券)

去购买 >

Java 程序员第一个要了解的基础概念就是:什么是面向对象编程(OOP)?

玩过 DOTA2 (一款推塔杀人的游戏)吗?里面有个齐天大圣的角色,欧洲战队玩的很溜,国内战队却不怎么会玩,自家人不会玩自家的神话英雄,实在有点悲哀。

我们用 Java 定义一个孙悟空的类吧:

public class SunWukong {

private Integer healthPoint;// 生命值

private Integer magicPoint;// 魔法值

/**

* 棒击大地

*/

private void rodHittingTheEarth() {

}

/**

* 丛林之舞

*/

private void jungleDance() {

}

}

我们给他两个属性(生命值 healthPoint 和魔法值 magicPoint),给他两个技能(棒击大地 rodHittingTheEarth() 和丛林之舞 jungleDance())。

假如我是 LGD(老干爹,国内知名 DOTA 战队)的教练 357(已辞职),一名聪明绝顶的好教练(真的秃头了),主要负责赛前的 BP(Ban 和 Pick,拌掉对方的英雄和选己方英雄) 工作。

现在,是 TI9 的小组赛(已结束),LGD 对阵 OB(欧洲战队,两届冠军) 的第一局。

我——357 在 BP 阶段先 BAN 掉了比较克制孙悟空的兽王和发条技师,然后在选人阶段(PICK)挑选了水晶室女这个冰美人来和孙悟空这个一身毛的家伙搭配。

那么,在我选孙悟空的这个阶段,就等于说创建了一个孙悟空的对象,也就相当于 Java 中的 new SunWukong()。选好了孙悟空,让谁来玩呢?自然是队中号称世界第一中单的 maybe。

面向对象编程(OOP)其实并不难懂,不就是英文单词 Object-Oriented Programming 的首字母缩写嘛。OOP 给我们一种概念,就是“万物皆对象”——我们可以尽可能的发挥想象,把现实中的物(包括动物、人物、甚至无生命的事物)抽象为一种计算机语言(比如 Java)能懂的模型,那么接下来,计算机解决现实中的问题就变得简单了起来。

OOP 的强大之处就在于,它使我们不必依照计算机的限制来模拟现实中的物;我们可以基于现实中要解决的问题来构建对象,使这个对象具有现实中物所具有的特征(对应 Java 类中的属性)和行为(对应 Java 类中的方法)。物不同,对象所具有的属性和方法就会不同。

还拿 DOTA 中的英雄来说吧。

所有的英雄都可以抽象为一个类(对象是类的实例化),这个类包含了英雄对应的成长属性(生命值、魔法值、伤害值、护甲值等等),以及对应的技能行为。那么,怎么区分每个英雄的不同呢?比如说冰美人水晶室女是一个魔法辅助类的英雄,因此,她的初始化生命值自然比敏捷类的齐天大圣低一些,但魔法值高一些;另外,他们的技能也完全不同——孙悟空拿着一根金箍棒,所以他的技能就有棒击大地;水晶室女拿着一根法杖,所以她的技能就有冰霜新星、冰封禁制等。

面向对象编程给我们了一些重要的启示:

1)万物皆对象。

2)程序是对象相互协作的一个过程,他们通过发送消息来告知彼此要做的事情。

3)每个对象都有自己的类型,也就是“每个对象都是某个类(抽象数据类型)的一个实例”。尽管每个对象都是唯一的(在内存中拥有一个唯一的地址),但具有相同状态(属性、变量)和类似行为(方法)的对象可以归属为一个类。

4)每个对象都提供了某种服务。比如说孙悟空可以跳上树上(丛林之舞),然后再跳下来对区域内的敌人造成减速和伤害(乾坤跳跃)。

面向对象编程的代码易维护、易复用、易扩展,因为面向对象有三大特性:封装、继承、多态。

1)封装,每个对象的模板——类可以自由地定义属性和行为,使其有别于别的类。

2)继承,子类可以轻松地复用父类的代码(属性和行为),只需要一个关键字——extends。如果父类的属性不满足子类的需求,可以追加;如果父类的方法不满足子类的需求,可以覆盖。

3)多态,这个特性是基于前面两个特性衍生出来的,比较难掌握一些。可以先尝试理解一下。现在有两个对象,一个是子类的对象,一个是父类的对象,假如把它们传递给同一个方法的时候,该方法的参数可以定义为父类的类型(假如定义为子类类型的时候,父类就无法传递),方法在执行的时候会自动识别传递的是父类还是子类。

封装、继承、多态这三个特性对于初学者来说,有点头大。不过不用担心,我会在后面的文章中继续深入地介绍。微信搜索「沉默王二」公众号,关注后回复「免费视频」获取 500G Java 高质量教学视频。

原文链接:https://www.cnblogs.com/qing-gee/p/11774867.html

java 11官方入门(第8版)教材

79.84元

包邮

(需用券)

去购买 >

java中的oop是什么意思_什么是面向对象编程(OOP)?相关推荐

  1. Java中脚手架是干什么用的_如何理解面向对象?

    第一天 上帝看到人类发明了计算机,但一直在用汇编语言艰难地写程序,很是伤心,就把编译器的秘密告诉了约翰·巴科斯,让他带领大家写出了编译器,从此人类可以用高级语言写程序,然后编译成机器语言去运行了. 上 ...

  2. opp原则_面向过程编程(OPP) 和面向对象编程(OOP)的关系

    面向过程编程(OPP) 和面向对象编程(OOP)的关系 原文链接:http://blog.csdn.net/phphot/article/details/3985480 关于面向过程的编程(OPP)和 ...

  3. S.O.L.I.D 是面向对象设计(OOD)和面向对象编程(OOP)中的几个重要编码原则

    注:以下图片均来自<如何向妻子解释OOD>译文链接:http://www.cnblogs.com/niyw/archive/2011/01/25/1940603.html <How ...

  4. python oop编程_23 Python - 面向对象编程OOP

    面向对象编程OOP 01 方法__repr__()和__str__() __repr__()方法类似java中的toString方法,用于反馈类的相关信息且可以自己定义,一般用于开发人员控制台调试 _ ...

  5. python oop求三角形面积公式_Python面向对象编程-OOP

    Python面向对象编程-OOP 20141216 Chenxin整理 OOP的3大特性: 封装,继承,多态 一.封装 OOP目的,OOP为了代码重用 :分解代码 ,最小化代码的冗余以及对现在的代码进 ...

  6. 【廖雪峰Python学习笔记】面向对象编程OOP

    面向对象编程 OOP:Object Oriented Programming 程序的基本单元:对象 [ = 数据 + 操作数据的函数] [属性 + 方法] 三大特点:数据封装.继承和多态 OPP中的计 ...

  7. 面向对象编程OOP的三大特性

    面向对象的三个基本特征是:封装.继承.多态. 封装 封装最好理解了.封装是面向对象的特征之一,是对象和类概念的主要特性. 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类 ...

  8. 学习面向对象编程OOP 第一天

    面向对象编程 Object Oriented Programming 一.什么是面向对象编程OOP 1.计算机编程架构; 2.计算机程序是由一个能够起到子程序作用的单元或者对象组合而成.也就是说由多个 ...

  9. 面向对象编程(OOP)和函数式编程(FP)的思考

    最近看过不少 JavaScript 的类(实际是嵌套 function),自己也写了一些,发现一个值得思考的问题. 有的作者可能为了提高一点性能,喜欢有事没事把方法里面的某个变量做成类的字段(attr ...

  10. [转载] Python3基础:08_02_面向对象编程(OOP)——类和对象

    参考链接: Python中的面向对象编程OOP | 3(继承,对象示例,issubclass和super) 0.前言   这篇博文将讲述Python面向对象开发中的类与对象的概念,包括对类和对象的理解 ...

最新文章

  1. python和javascript交互_python和js交互调用的方法
  2. 前言 致Java开发学习前的一段话
  3. 机器学习之决策树(下)
  4. 基于知识图谱的问答系统(以医疗行业为例)
  5. python算法与数据结构-希尔排序算法
  6. 3DMAX安装包及近百GB素材资源,以及3D游戏建模教程
  7. JavaScript中的类方法、对象方法、原型方法
  8. Java RMI 服务易受 SSRF 攻击
  9. Pulseaudio之nemo(二十二)
  10. 第7章--基本统计分析
  11. android swf 文件播放器,swf播放器怎么用?swf播放器安卓版使用教程
  12. 手机屏幕怎么计算机,怎样把手机屏幕投到电脑
  13. pymysql的使用
  14. 做人做事的艺术html,低姿态做人做事的艺术简介读后感,经典语录书评
  15. Tomcat服务部署
  16. keepalived结合nginx主备高可用实现
  17. 关于偶的专业-信息工程
  18. 我的世界服务器显示伤害指令,我的世界怎么关闭队友伤害命令_我的世界怎么关闭队伤...
  19. 第三部,雨荨云海婚后故事概要
  20. git克隆early EOF

热门文章

  1. 《商务与经济统计》练习:案例2-1:Pelican商店促销活动效果评估
  2. 算法(第四版) 2.1答案
  3. 根据xsd文件逆向生成java类
  4. sql插入多条记录_如何在SQL中插入多条记录
  5. CPDA数据分析师证书含金量高吗?
  6. QT 快捷键 识别小写字母
  7. IOS-性能优化/内存优化常用方法小总结
  8. 阿里巴巴数据中台实践(PPT)
  9. window下使用tail -f查看tomcat日志
  10. 一款Mac平台上自带广告拦截功能插件的浏览器软件