该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

面向对象程序设计

Java的核心是面向对象程序设计(OOP)。面向对象方法论与Java是密不可分的,而Java所有的程序至少在某种程度上都是面向对象的。因为OOP对Java的重要性,所以在开始编写一个哪怕是很简单的Java程序之前,理解OOP的基本原理都是非常有用的。

OOP是一种功能强大的程序设计方法。从计算机诞生以来,为适应程序不断增加的复杂程度,程序设计方法论也发生了巨大的变化。例如,在计算机最初被发明时,程序设计是通过使用计算机面板输入二进制机器指令来完成的。只要程序仅限于几百条指令,这种方法就是可以接受的。随着程序的增长,汇编语言被发明了,这样程序员就可以使用代表机器指令的符号表示法来处理大型的、复杂的程序。随着程序的继续增长,高级语言的引入为程序员提供了更多的工具,这些工具可使他们处理更复杂的程序。第一个广泛使用的语言是FORTRAN.尽管FORTRAN是人们迈出的颇具影响的第一步,但是它很难设计出清晰、简洁、易懂的程序。

20世纪60年代诞生了结构化程序设计方法,C和Pascal这样的语言鼓励使用这种方法。结构化语言的使用使得编写中等复杂程度的程序变得相当轻松。结构化语言的特点是支持孤立的子例程、局部变量、丰富的控制结构和不使用GOTO语句。尽管结构化语言是一个功能强大的工具,但是在项目很大时仍然显得有些捉襟见肘。

考虑一下:程序设计发展的每个里程碑,技术和工具都是为了使程序员处理日渐复杂的程序而创造的。在这条道路上的每一步,新的方法都吸收了过去方法的精华而不断前进。OOP出现之前,许多项目已经接近(超过)结构化方法工作的极限。于是,为了冲破这一束缚,就创建了面向对象方法。

面向对象程序设计采纳了结构化程序设计的思想精华,并且用一些新的概念与之结合。这样的结果就是一种新的程序组织方法的产生。广义上讲,一个程序可以用下面两种方法来组织:一种是围绕代码(发生了什么),一种是围绕数据(谁受了影响)。如果仅使用结构化程序设计技术,那么程序通常围绕代码来组织。这种方法可以被认为是"代码作用于数据".

面向对象程序则以另一种方式工作。它们以"数据控制访问代码" 为主要原则,围绕数据来组织程序。在面向对象语言中,需要定义数据和作用于数据的例程。这样,数据类型可以精确地定义出哪种类型的操作可以应用于该数据。

为支持面向对象程序设计的原理,所有OOP语言,包括Java在内,都有三个特性:封装(encapsulation)、多态性(polymorphism)和继承(inheritance)。下面,我们对此一一学习。(文章节选自希赛教育程序开发学院http://www.educity.cn/develop)

新手学java7编程_新手学Java 7编程:面向对象程序设计相关推荐

  1. 在线五子棋JAVA网络编程_实验五 Java网络编程及安全

    一.实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 二.实验步骤 1. 基于Java Socket实现安全传输 2. 基于TCP实现客户端和服务器,结对编 ...

  2. java网络编程与分布式计算_Java_net Java网络编程与分布式计算 - 下载 - 搜珍网

    Java网络编程与分布式计算/ch11/ActivatableLightBulbServer.java Java网络编程与分布式计算/ch11/active.policy Java网络编程与分布式计算 ...

  3. 20175212童皓桢 Java实验二-面向对象程序设计实验报告

    20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...

  4. java语言与面向对象清华大学pdf_清华大学出版社-图书详情-《Java语言与面向对象程序设计》...

    Java是一门简单的.动态的跨平台编程语言,它是面向对象编程的典范,因此更适合面向对象程序设计方法论与实践的入门教学.Java被广泛地应用到各个领域中:高伸缩高可靠的服务器端应用开发.复杂的企业生产运 ...

  5. java计算机毕业设计面向对象程序设计课程网站源码+系统+mysql数据库+lw文档

    java计算机毕业设计面向对象程序设计课程网站源码+系统+mysql数据库+lw文档 java计算机毕业设计面向对象程序设计课程网站源码+系统+mysql数据库+lw文档 本源码技术栈: 项目架构:B ...

  6. 澄海哪里学机器人编程_少年学机器人编程

    ​当今社会,唯有能者居之,说的是有技能在手的人可以立足于职场,格物斯坦表示:现代化的教育方式有很多,其中有一种机器人编程教育模式,青少年们学好了,以后中考.高考核就业比同龄人更有优势了. 人工智能.信 ...

  7. java 并发框架源码_某网Java并发编程高阶技术-高性能并发框架源码解析与实战(云盘下载)...

    第1章 课程介绍(Java并发编程进阶课程) 什么是Disruptor?它一个高性能的异步处理框架,号称"单线程每秒可处理600W个订单"的神器,本课程目标:彻底精通一个如此优秀的 ...

  8. 华东政法大学教学管理系统_华东政法大学教学管理信息系统登录入口、成绩查询网上选课查分...

    华东政法大学教学管理信息系统登录入口.学生期末考试成绩查询网上选课查分 学院教务系统入口_华东政法大学教学管理信息系统 用户名: 密码: 验证码: ... https://jwxt.ecupl.edu ...

  9. java io 网络编程_[笔面] Java IO和网络编程相关面试

    1.网络编程时的同步.异步.阻塞.非阻塞? 同步:函数调用在没得到结果之前,没有调用结果,不返回任何结果. 异步:函数调用在没得到结果之前,没有调用结果,返回状态信息. 阻塞:函数调用在没得到结果之前 ...

最新文章

  1. shell测试命令test、[ ]、[[ ]]
  2. C++11 正则表达式——实例1
  3. 零基础是学java还是python-零基础学习编程,Java、Python你会选择哪个?
  4. jquery.placeholder.min.js让你的IE浏览器支持placeholder
  5. SAP Spartacus UI Duplicated keys has been found in the config of i18n chunks
  6. cocos2d-x-3.x 动作(5)序列动作
  7. sqoop将mysql数据导入到hive指定的数据库中
  8. DataGrid多层表头设计
  9. golang 将对象转换成string_Golang 匿名 struct 解码数据技巧
  10. matlab 传递函数 响应,matlab:知道传递函数G,怎么画出阶跃响应?
  11. Zabbix Server 3.0官方跟踪连接接口
  12. 用Adobe Illustrator将位图转为矢量图并上色
  13. Altium Designer 原理图输出为PDF文件
  14. 南京理工大学计算机考研资料汇总
  15. usb key 开发(一)
  16. 读取jpeg图像数据
  17. 对比excel 轻松学python百度云_解读《对比Excel轻松学习Python数据分析》
  18. coldfusion_ColdFusion中的一周:1月30日至2月5日:一切
  19. 房屋托管网络管理系统_学习管理系统和共享托管
  20. 赖世雄老师---不完全不及物动词---become/turn/get/seem及感官动词

热门文章

  1. typescript 动态给class添加方法
  2. JMeter插件模拟发送UDP请求:UDP sampler
  3. SQLServer 生成当前日期备份
  4. html页面text固定长度,HTML中input type=text和type=password 显示的长度不一样
  5. swagger接口文档使用
  6. 信息抽取--关键词提取
  7. 常用内存分配函数的说明
  8. spring----注解
  9. cf1108E2 线段树类似扫描线
  10. 【转】Yelp是如何实现每天运行数百万个测试的