人世繁华|进行面向对象程序设计深剖,可以一学,大牛带你深入Java核心技术
前言在这一章里 , 将主要介绍
?面向对象程序设计 。
?如何创建标准Java类库中的类对象 。
?如何编写自己的类 。
【人世繁华|进行面向对象程序设计深剖,可以一学,大牛带你深入Java核心技术】如果没有面向对象程序设计的应用背景 , 就一定要认真地阅读这一章的内容 。 面向对象程序设计与面向过程程序设计在思维方式上存在着很大的差别 。 改变一种思维方式不是一件很容易的事情 , 而且要想继续学习Java就需要熟悉对象的概念 。
对于具有C++编程经验的程序员来说 , 与上一章相同 , 对这一章的内容不会感到太陌生;但是 , 在两种语言之间还是存在着很多不同之处 , 因此应该认真地阅读本章的后半部分内容 。 你会发现“C++注意”十分有助于学习Java语言 。
面向对象程序设计概述面向对象程序设计(简称OOP)是当今主流的程序设计范型 , 它已经取代了70年代早期的“结构化”过程化程序设计开发技术 。 Java是完全面向对象的 , 绝对不能使用人们熟悉的过程式风格设计Java程序 。 我们希望能够在这一节中 , 通过书中和网上的示例程序 , 提供充足的OOP信息 , 以便辅助读者编写Java程序 。
下面让我们从一个看似与程序设计无关的例子开始 , 这个例子是这样说的:为什么Compaq、Dell、Gateway以及其他一些主流的PC机制造商能够这样快地发展壮大?很多人可能会说:他们能够生产具有良好性能的计算机 , 并以低廉的价格销售 , 从而满足了人们对计算机需要的迅猛增长 , 顺应了时代的需求 。 然而 , 让我们进一步地思考一下 , 他们为什么能够制造出这么多种型号的计算机 , 并以如此快的速度对需求变化做出响应?
其中主要原因是这些公司将大量的工作交给了他人 。 他们从信誉较好的厂商那里购买组件 , 然后将它们组装起来 。 这样一来 , 往往不需要在设计与制作电源、磁盘驱动器、主板以及其他组件上花费过多的时间和资金 。 与自行研制相比 , 这样能够以更快的速度、更少的资金生产产品 , 并快速地适应需求变化 。
个人计算机制造商所购买的就是“预包装功能”(prepackagedfunctionality) 。 例如 , 当购买一个电源的时候 , 实际上购买的是具有一些属性(大小、形状等等)和功能(稳压输出、实际功率等)的东西 。 Compaq公司就是一个应用这种高效生产过程的典范 。 当他们从自行研制大部分零部件转向主要依靠购买部件时 , 其盈利获得了大幅度地提升 。
OOP也是基于同样的想法 。 它认为程序是由对象组成的 , 这些对象有自己的属性和能够执行的操作 。 是自己构造对象还是从外界购买对象完全取决于预算或时间 。 但是 , 从根本上说 , 只要对象能够满足要求 , 就不必关心其功能的具体实现过程 。 在OOP中 , 只需要关注对象的外表 , 就如同计算机制造商只关心电源是否符合要求 , 不必关心其内部结构一样;绝大多数的Java程序员不必关心对象的具体实现 , 只要保证对象满足他们的需求就可以了 。
传统的结构化程序设计通过设计一系列的过程(即算法)来求解问题 。 这些过程一旦被确定 , 下一步就要开始寻找存储数据的方式 。 这就是Pascal语言的设计者NiklausWirth将其编著的有关程序设计的著名书籍命名为《Algorithms+DataStructure=Programs》(算法+数据结构=程序)(PrenticeHall,1975)的原因 。 请注意 , 在Wirth命名的书名中 , 算法是第一位的 , 而数据结构是第二位的 。 这就生动地表述了程序员当时的工作方式 。 首先要确定如何操纵数据;然后再决定如何组织数据的结构 , 以便操纵数据 。 OOP却调换了这个次序 , 将数据放在第一位 , 然后再考虑操纵数据的算法 。
OOP的关键是让每一个对象负责执行一组相关的任务 。 如果一个对象依赖于另一个对象负责处理的任务 , 那么它就去访问那个包括该任务的对象 。 此时 , 第一个对象请求第二个对象执行任务 。 这种工作方式实际上是由过程化程序设计中人们所熟悉的过程调用实现的 。 (在Java程序设计语言中 , 这些过程调用被称为方法调用 。 )
推荐阅读
- 程序员■Java程序员必知:HashMap进行put操作会不会引起死循
- 威锋网|欧洲消费者要求苹果就“降速门”进行赔偿
- IT之家|外媒:欧洲消费者要求苹果就iPhone电池门进行赔偿
- 路飞写代码|浪潮也难以逃脱限制,自主自研迫在眉睫!美国科技霸凌背后的“获利”浪潮也被美国进行断供更大的风暴还在后面写在最后:,中兴、华为之
- 小熊带你玩科技|全新等离子体光子芯片:利用光进行超高速数据传输
- 「」华南虎当初被送到非洲,进行野化训练,这个庞然大物现在变得如何
- cnBeta|要求就iPhone电池门进行赔偿,欧洲消费者向苹果施压
- cnBeta|拥有人造羽毛进行飞行,研究人员创造BionicSwift机器人鸟
- @中国最大的一次天灾,让数亿人离开人世,否则中国人数早超20亿!
- 3D科学谷|现在进行时,3D打印驱动的下一代运动防护头盔