第1章 java面向对象技术概述
第1章Java 语言基础知识

2
目录
1.1 Java语言与面向对象的程序设计 1.2 Java5和Java6的新特色 1.3 Java程序概述 1.4 基本数据类型与表达式 1.5 数组的概念 1.6 数组的创建和引用 1.7 本章小结
3
1.1 Java语言与面向对象的程序设计
• Java语言是一个面向对象的程序设计语言。 • 除了面向对象的特点以外,Java语言还在安全性、
19
1.3.1 Java开发环境(续)
• Java 平台
Java 程序 Java APIs
Java 虚拟机
计算机系统
• Java APIs (应用程序接口)
▫ 经过编译的,可在程序中使用的Java代码标准库。
• Java VM(虚拟机)
▫ Java 程序由Java虚拟机程序执行(或解释执行)。
1.3 Java程序概述
}
1.1 Java语言与面向对象的程序设计
8
1.1.1 面向对象的程序设计思想(续)
• 面向对象技术给软件发展带来的益处
▫ 可重用性 ▫ 可靠性
• 面向对象语言的基本特征
▫ 抽象和封装 ▫ 继承性 ▫ 多态性
1.1 Java语言与面向对象的程序设计
9
1.1.2 Java语言的特点
• 面向对象 • 安全性
▫ Servlet用到的包在J2EE的API中能找到 ▫ 所有的servlet都必须实现Servlet接口
1.3 Java程序概述
36
1.3.4 Servlet举例(续)
——例1-3
程序首先构建HttpServletRequest,并建立一个数据表 单;点击submit按钮后,servlet再次被调用,并产生一个 含有表单的网页。
第1章 Java语言概述

第1章Java语言概述本章知识目标:❑了解面向对象程序设计的特性。
❑掌握Java应用程序和Applet程序的调试过程。
❑了解Java的开发与运行环境。
❑了解Java语言的特点。
Java语言从1995年问世至今,得到众多厂商的支持,成为软件开发的主流技术。
Java 是面向对象的程序设计语言,拥有跨平台、多线程等众多特性,在网络计算中得到广泛应用。
1.1 面向对象程序设计的特性早期的编程语言如Fortran、C等都是面向过程的语言,面向过程编程的一个明显特点是数据与程序是分开的。
但随着计算机软件的发展,程序越做越大,软件维护也日益困难。
面向对象编程贴近于人类思维方式,面向对象的软件开发将事物均看作对象,对象有两个特征:状态与行为,对象可以通过自身的行为来改变自己的状态。
最新的程序设计语言一般为面向对象的语言,面向对象程序设计具有如下四大特性。
1.封装性(Encapsulation)面向对象的第一个原则是把数据和对该数据的操作都封装在一个类中,类的概念和现实世界中的“事物种类”是一致的。
例如,电视机就是一个类,每台电视机都有尺寸、品牌、频道等属性。
我们可用on/off开关来开启电视,通过更改频道让电视机播放不同的节目。
对象是类的一个实例化结果,对象具有类所描述的所有属性以及方法。
对象是个性化的,在程序设计语言中,每个对象都有自己的存储空间来存储自己的各个属性值,有些属性本身又可能由别的对象构成。
每个对象都属于某个类。
面向对象程序设计就是设计好相关的类,类中有属性和方法。
在统一建模语言UML中使用如图1-1所示的符号来描述对象和类的结构,其中,属性用来描述对象的状态,而方法则用来描述对象的行为。
2.继承性(Inheritance)继承是在类、子类以及对象之间自动地共享属性和方法的机制。
类的上层可以有父类,下层可以有子类,形成一种层次结构,如图1-2所示。
一个类将直接继承其父类的属性和方法,而且继承还具有传递性,因此,它还将间接继承所有祖先类的属性和方法。
Java程序设计--第一章.Java入门

可移植性
解释执行
高性能
多线程
Page
Chapter1
Java 概述
18 / 48
Java 语言的特点
简单性
面向对象技术
分布性 健壮性 安全性 体系结构中立
网络上充满了各种不同类型的机 器和操作系统. 为使 Java 程序能在网络的任何 地方运行,解释器生成与体系结 构无关的字节码结构的文件格式, 他们只需提供相应的Java 运行 系统,便能在任何种类的处理器 上运行.
可移植性
解释执行
高性能
Chapter1
Java 概述
Java 的诞生
1991年,Sun公司有一群异想天开的上层觉得观众 点播电视节目是将来的趋势,于是派Jame Gosling 和其他人组成一个团队去研发 。 Jame被Sun公司 派给一项开发电视机机顶盒的任务。 机顶盒取名FirstPerson.
Page
11 / 48
可移植性
解释执行
高性能
多线程
Page
Chapter1
Java 概述
14 / 48
Java 语言的特点
简单性
面向对象技术
分布性 健壮性 安全性 体系结构中立
采用了面向对象技术并更加彻底, 所有的Java程序和Java applet均
是对象
实现了模块化和信息隐藏 继承性实现了代码的复用, 使用户可以建立自己的类库
要的语言.
Page
9 / 48
chap1Java与面向对象程序设计

2. 面向对象的设计 形成OOD模型 • 在OOA模型基础上引入界面管理、任务管理和
数据管理三部分内容。
• 界面管理负责整个系统的人机界面的设计
• 任务管理负责处理并行操作之类的系统资源管 理功能的工作
• 数据管理负责设计系统与数据库的接口。 3. 面向对象的实现 • 选择一种合适的编程语言 • 实现各个类 • 集成 • 维护
对象的操作1 对象的操作2
打开
关闭
对象的操作n
对象的状态 静态属性 (变量)
颜色大小开 启
对象的操作3 换台
对象的操作
……
方法一方面把对象内部的变量包裹封 装保护起来,一方面与外部交互
• 对象的标志,一般是指对象名,用于区别同一类 的各个对象
• 由于对象是类的实例化,因此在程序中通常是先 定义类即定义同类对象的公共属性包括变量和方 法,然后再用对象名创建类的实例对象
现实世界
计算机世界 对象
映射
实体
抽象 实例化
抽象 概念世界
类
抽象数据向对象技术的核心概念之一。如上图所示, 对象就是现实世界中某个具体的物理实体在计算机 中的映射和体现。对象拥有各自的静态属性和相关 的操作。比如,现实世界中的电视机是一个实体, 有品牌、尺寸、颜色、开关、控制器等。
,最终形成一个广泛联系的可理解扩充维护更接近 问题本来面目的动态对象模型系统
• 对象:是现实世界的实体或概念在计算机中 的抽象表示。用来模拟组成或影响现实世界 问题的一个或一组因素。(下一节详细介绍)
• 面向对象程序设计的优点:
1. 对数据的封装提高了程序的可复用和可维护性 封 2. 由于封装,保护私有数据
第三阶段 面向对象的实现
进行具体的编程、 模块连接及测试
JAVAOOP总结

第一章抽象和封装一、现实世界是“面向对象”的,面向对象就是采用“现实模拟”的方法设计和开发程序二、面向对象是目前计算机软件开发中最流行的技术,面向对象设计的过程就是抽象的过程三、类是对某一类事物的描述,是抽象的、概念上的定义,对象是实际存在的该事物的个体,是具体的现实的四、如果同一个类中包含了两个或两个以上的方法,它们的方法名相同,方法参数个数或参数类型不同,则称该方法被重载,这个过程称为方法重载。
五、构造方法用于创建类的对象,构造方法的主要作用就是在于创建对象时执行一些初始化操作,可以通过构造方法重载来实现多种初始化行为。
六、封装就是将类的成员属性声明为私有的,同时提供公有的方法实现对该成员属性的存取操作。
七、封装的好处:隐藏类的实现细节;让使用者只能通过程序规定的方法来访问数据;可以方便地加入存取控制语句,限制不合理操作。
第二章继承-、继承是JAVA中实现代码重用的重要手段之一,JAVA中只支持单继承,即一个类只能有一个直接父类,ng.Object类的祖先。
二、在子类中可以根据实际需求对从父类继承的方法进行重新编写,称为方法重写或覆盖三、子类重写的方法和父类被重写的方法必须具有相同的方法名,参数列表,返回值类型必须和被重写方法的返回值类型相同或是其子类。
四、如果子类的构造方法中没有通过SUPER显示调用父类的有参构造方法,也没有通过this显示调用自身的其他构造方法,则系统默认先调用父类的无参构造方法。
五、抽象类不能实例化,抽象类中可以有多个抽象方法,非抽象类若继承抽象类,则必须重写父类的所有抽象方法六、子类必须重写父类所有的抽象方法才能实例化,否则子类还是一个抽象类。
七、用FINNAL修饰类,而不能再被继承,用finnal修饰的方法,不能被子类重写,用finnal修饰的变量将变成常量,只能在初始化时进行赋值,不能在其他地方修改第三章多态1、多态的优点:通过多态可以减少类中的代码量,可以提高代码的可扩展性和可维护性,继承是多态的基础,没有继承就没有多态。
面向对象应用设计1

7
我们为什么要用Java 我们为什么要用
面向对象的
面向对象可以说是Java最重要的特性,所以它支持 最重要的特性, 面向对象可以说是 最重要的特性 继承、重载、多态等面向对象的特性。 继承、重载、多态等面向对象的特性。Java语言的设 语言的设 计是完全面向对象的,它不支持类似C语言那样的面向 计是完全面向对象的,它不支持类似 语言那样的面向 过程的程序设计技术。 过程的程序设计技术。 封装: 程序以“ 为基本结构, 封装程序以
15
Java跨平台的原理 跨平台的原理
Java解释器的执行过程
运行JVM字节码的工作是由解释器来完成的。解释执行过程分三步进 字节码的工作是由解释器来完成的。 运行 字节码的工作是由解释器来完成的 代码的装入、代码的校验和代码的执行。装入代码的工作由“ 行:代码的装入、代码的校验和代码的执行。装入代码的工作由“类装 载器” 载器”(class loader)完成。类装载器负责装入运行一个程序需要的所 )完成。 有代码,这也包括程序代码中的类所继承的类和被其调用的类。 有代码,这也包括程序代码中的类所继承的类和被其调用的类。当类装 载器装入一个类时,该类被放在自己的名字空间中。 载器装入一个类时,该类被放在自己的名字空间中。除了通过符号引用 自己名字空间以外的类,类之间没有其他办法可以影响其它类。 自己名字空间以外的类,类之间没有其他办法可以影响其它类。在本台 计算机上的所有类都在同一地址空间内,而所有从外部引进的类, 计算机上的所有类都在同一地址空间内,而所有从外部引进的类,都有 一个自己独立的名字空间。 一个自己独立的名字空间。这使得本地类通过共享相同的名字空间获得 较高的运行效率,同时又保证它们与从外部引进的类不会相互影响。 较高的运行效率,同时又保证它们与从外部引进的类不会相互影响。
第1章 Java语言概述
第1章 Java语言概述面向对象的软件开发和利用面向对象技术进行问题求解是当今计算机技术发展的重要成果和趋势之一,而Java语言的产生与流行则是Internet发展的客观要求。
本章将简要介绍软件开发方法的变革和面向对象程序设计中的基本概念,介绍Java语言的特点及开发Java 程序的基本步骤等,使读者对面向对象软件开发方法的基本思想和特点有一定的了解,熟悉Java语言特点、与C/C++的主要差异、Java程序执行过程、Java运行环境及开发工具等基本知识。
1.1 面向对象的软件开发概述人类已经进入了21世纪。
21世纪是信息社会,是知识经济的时代。
信息是战略资源,信息的挖掘、增加、管理、流通、利用以及更新离不开计算机。
计算机广泛又深刻地改变了人类的生活。
计算机系统是由计算机硬件子系统与相应软件子系统构成的,计算机软件是计算机的灵魂。
软件是相对计算机硬件而言的,是事先编制好的具有特定功能和用途的程序系统及其相应说明文件的统称。
随着计算机硬件的发展和计算机的广泛应用,软件系统的发展也从简单到复杂、从小型到大型、从封闭到开放。
就软件开发方法而言:在二十世纪40、50年代,由于每台计算机都是单独设计的,计算机作为价格昂贵的特殊计算工具,实现计算任务的程序由极其小部分专业人士专门编制,所以无需什么开发方法。
在60年代,虽然程序设计人员开始意识到软件的相对独立性的重要作用,但由于缺乏软件开发方法和技术,编程人员只能针对特定问题,根据所需功能,制定相应的方法。
在70年代,软件开发技术有了很大的发展,主要表现在:①数据结构与算法成为一种独立研究对象。
通过对数据结构与算法的研究,提高了计算机的时空效率。
②将结构化程序设计方法发展为结构化开发方法,提出了重要的软件开发模型——瀑布模型。
软件开发也从依靠个人的技巧、经验和智慧发展到按系统方法通过遵从一系列规范进行开发的阶段。
在80年代,由于软件系统规模的扩大,单纯的编程技术已经不是开发软件系统的重点,而如何管理系统的结构,如何管理系统各部分之间的接口,如何将系统各部分集成为一体等成为软件系统开发技术的焦点。
1 JAVA语言与面向对象的程序设计
17
第1章 Java语言与面向对象的程序设计
此外, 的可移植性还体现在Java的运行环境上。Java 的运行环境上。 此外,Java的可移植性还体现在 的可移植性还体现在 的运行环境上 编译器是用Java语言本身编写的,而其他编程语言运行的环境 语言本身编写的, 编译器是用 语言本身编写的 则是用ANSI C编写的,Java的整个运行环境体现了一个定义良 编写的, 则是用 编写的 的整个运行环境体现了一个定义良 好的可移植性接口。 语言规范还遵循POSIX标准,这也是 标准, 好的可移植性接口。Java语言规范还遵循 语言规范还遵循 标准 具有良好可移植性的重要原因。 使Java具有良好可移植性的重要原因。 具有良好可移植性的重要原因
12
第1章 Java语言与面向对象的程序设计
Java采用了多种机制来保证可移植性,其中最主要的有两条: 采用了多种机制来保证可移植性,其中最主要的有两条: 采用了多种机制来保证可移植性 第一, 既是编译型又是解释型的。 第一,Java既是编译型又是解释型的。 既是编译型又是解释型的
Java程序的最终执行需经过两个步骤:编译和解释。Java将源程序编译成字 程序的最终执行需经过两个步骤:编译和解释。 程序的最终执行需经过两个步骤 将源程序编译成字 节码——二进制代码,这种字节码通过Java解释器来解释执行。任何一台机 二进制代码,这种字节码通过 解释器来解释执行。 节码 二进制代码 解释器来解释执行 器,只要配备了Java解释器,就可以运行 解释器, 字节码, 只要配备了 解释器 就可以运行Java字节码,而不管这种字节码是 字节码 在何种平台上生成的。因此, 编程人员在进行软件开发时, 在何种平台上生成的。因此,Java编程人员在进行软件开发时,不必考虑软 编程人员在进行软件开发时 件的运行平台。此外, 通过预先把源程序编译成字节码, 件的运行平台。此外,Java通过预先把源程序编译成字节码,避免了传统解 通过预先把源程序编译成字节码 释型语言的执行效率低的性能瓶颈。 释型语言的执行效率低的性能瓶颈。Java语言与传统语言的不同运行机制如 语言与传统语言的不同运行机制如 所示。 图1.2所示。 所示
第1章Java 简介
第1章Java 简介1.1 概述最近几年Internet的迅速发展及万维网WWW(World Wide Web)的日益普及和快速增长,使得整个计算机世界正在经历着深刻的变革。
1989年超文本标记语言HTML(Hypertext Markup Language,超文本标记语言)和万维网WWW的产生是Internet数据描述语言的一次飞跃,万维网把全球的信息资源用HTML格式统一起来。
1996年,Sun公司的Java语言正式发表,则是一次Internet的技术革命。
在Internet上,Java语言和用Java编写的浏览器HotJava的出现在当时是特别引人注意的重大事件。
Java的诞生从根本上解决了Internet 的异质、代码交换以及网络程序的安全性等诸多问题。
其中Java语言是与平台无关的语言。
Java语言程序编译后,生成字节代码,运行在Java虚拟机上。
一个操作系统平台只要提供Java虚拟机,Java程序就可以在上面直接运行了。
从理论上讲,Java语言程序可运行在所有的操作系统平台上,从而在根本上解决了Internet的异质问题。
Java语言不仅仅是一个程序设计语言,更是一个网络操作系统。
因为:(1)Java语言可不依赖于任何现有操作系统,而直接运行在某种机器或CPU上;(2)Java语言有自己的内存管理机制;(3)Java语言支持多线程程序,可对处理器资源进行分配和管理;(4)Java语言可对设备进行管理,例如:屏幕、键盘、鼠标等;(5)Java语言支持网络文件管理,Java语言可打开远程机器上的文件,Java语言文件的概念已经扩充到整个Internet网络。
1.1.1 Java的起源与现状Java语言诞生于1991年,它是由Sun Microsystems的一个开发小组在开发Green项目时完成的。
该项目最初是开发一种用于消费类电子产品的与平台无关的软件技术,主要用来解决诸如电视机、电话、闹钟等家用电器的控制和通信问题。
JAVA语言与面向对象程序设计课后习题答案
JAVA语言与面向对象程序设计课后习题答案第1章面向对象软件开发概述1.简述面向过程问题求解和面向对象问题求解的异同。
试列举出面向对象和面向过程的编程语言各两种。
请问:面向过程问题解,以具体内容的解题过程为研究和同时实现的主体,其思维特点更吻合于计算机;面向对象的问题解,则就是以d对象‖为主体,d对象‖就是现实世界的实体或概念在计算机逻辑中的抽象化则表示,更吻合于人的思维特点。
面向过程的编程语言:c,pascal,foratn。
面向对象的编程语言:c++,java,c#。
2.详述对象、类和实体及它们之间的相互关系。
尝试从日常碰触至的人或物中抽象化出来对象的概念。
答:面向对象技术中的对象就是现实世界中某个具体的物理实体在计算机逻辑中的映射和体现。
类是同种对象的集合与抽象。
类是一种抽象的数据类型,它是所有具有一定共性的对象的抽象,而属于类的某一个对象则被称为是类的一个实例,是类的一次实例化的结果。
如果类是抽象的概念,如d电视机‖,那么对象就是某一个具体的电视机,如d我家那台电视机‖。
3.对象存有哪些属性?什么就是状态?什么就是犯罪行为?二者之间有何关系?建有对象d学生‖,精义这个对象设计状态与犯罪行为。
答:对象都具有状态和行为。
对象的状态又称作对象的静态属性,主要指对象内部所涵盖的各种信息,也就是变量。
每个对象个体都具备自己专有的内部变量,这些变量的值标明了对象所处的状态。
行为又称为对象的操作,它主要表述对象的动态属性,操作的作用是设置或改变对象的状态。
学生的状态:姓名、性别、年龄、所在学校、所在系别、通讯地址、电话号码、入学成绩等;学生的行为:自我介绍、入学注册、选课、参加比赛等。
4.对象间存有哪三种关系?对象d班级‖与对象d学生‖就是什么关系?对象d学生‖与对象d大学生‖就是什么关系?答:对象间可能存在的关系有三种:包含、继承和关联。
对象d班级‖与对象d学生‖是包含关系。
对象d学生‖与对象d大学生‖是继承关系。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013-8-20
14
• 面向对象与面向过程的不同 (1)它以数据为中心而不是以功能为中心来描述系统,数据相 对于功能而言具有更强的稳定性。 (2)它将数据和对数据的操作封装在一起,作为一个整体—— 类——来处理 。
(3)面向对象程序的控制流程由运行时各种事件的实际发生来 触发,而不再由预定顺序来决定 。 (4)它可以利用不断扩充的类库,在实际编程时采用搭积木的 方式来组织程序,站在“巨人”的肩上实现自己的目标。
2013-8-20 4
一些小的细节
• 大家在交作业的时候,作业本封面上要写明如下信息: 学号、姓名、班级编号、任课老师姓名 • 期末考试试卷上需要写明的信息: 学号、姓名、班级编号 • 在书写上述信息时,请字迹工整,因为这些信息是写给 他人看。 • 电子版作业提交的格式详情见我的BBS
2013-8-20
1.4 面向对象技术的基本特征
• 面向对象技术强调在软件开发过程中 面向客观世界或问题域中的事物,采用人 类在认识客观世界的过程中普遍运用的思 维方法,直观、自然地描述客观世界中的 有关事物。面向对象技术的基本特征主要 有抽象性、封装性、继承性和多态性。
2013-8-20
22
1.4.1 抽象性
抽象就是忽略事物中与当前目标无关的非 本质特征,更充分地注意与当前目标有关 的本质特征.
2013-8-20
8
1.1 面向对象技术的发展
•
在C++语言十分热门的时候,人们开始了对面向 对象分析(Object Oriented Analysis,OOA)的 研究,进而延伸到面向对象设计(Object Oriented Design,OOD)。特别是90年代以后, 许多专家都在尝试用不同的方法进行面向对象的分 析与设计,在这段时期,面向对象的分析和设计技 术逐渐走向实用,最终形成了从分析、设计到编程、 测试与维护一整套的软件工程体系。当前,面向对 象的概念已经渗透到编程语言、用户接口、人工智 能和数据库等方面。
消息(Message)是对象间交互的手段,是要求某个对象执 行某个操作的规格说明,是对象之间相互请求或相互协 作的途径。 事件(Event)是系统产生的动作或是运行应用程序产生的 动作,事件的概念和Windows的差不多,在Windows中, 对于任何一个程序中的命令请求,例如鼠标的单击、移 动、键盘按下等,都可以成为一个事件。事件通过消息 描述。
2013-8-20
29
例如,在父类“几何图形”中定义了一个行为“绘图”,但并不确定执 行时到底画一个什么图形。子类“椭圆”和“多边形”都继承了几 何图形类的绘图行为,但其功能却不同,一个是要画出一个椭圆, 另一个是要画出一个多边形。
几何图形类 行为:绘图
椭圆类 行为:绘图
多边形类 行为:绘图
2013-8-20
11
1.2面向对象方法与结构化方法的比较
• 按照面向对象方法来分析本系统则不是从功能 入手,而是从对象入手。待解决的问题所涉及的 业务范围称为该软件的问题域(Problem Domain)。 • 面向对象方法从问题域中的事物出发,围绕 问题域中的事物来思考问题、认识问题,并根据 这些事物的本质特征,把它们抽象地表示为系统 中的对象,作为系统的基本构成单位。这可以使 系统直接地映射问题域。
在BBS上注 CQUPT201203 册的验证码 : (建议用QQ帐号登录,方便以后记忆。) 38298894 QQ : QQ认证信息: tangxj@
(以其它信息加我好友的,我会直接无视)
2013-8-20 2
本课程要求
• 不要以拿学分的心态学这门课,虽然学分很重要。 • 平时还是要多下点功夫在学习上,这门课程是计算机的 基础课,有些知识会影响到后续的程序设计课程。 • 平时到课和作业很重要,虽然你可以旷课和不交作业, 但是请注意次数。 • 旷课或者不交作业次数达到总次数的1/3(含),取消 考试资格。 • 最后的成绩评定=期末考试×80% + 平时成绩,这个 学期如有变化,另行通知。
借阅者
管理员
预 定 信 息
2013-8-20
13
• 面向对象方法的优越性
(1)以对象为中心的开发方法能更自然更直接地反映真实世 界的问题空间,对象、类、子类都自然对应于实际问题的 物理或逻辑实体,这样使问题转换工作量达到最小程度。 (2)以对象为中心的开发方法采用消息传递机制作为对象之 间相互通信的唯一方式。 (3)以对象为中心的开发方法具有独特的继承性和更丰富的 多态性,使这种开发方法更易于扩充,能很好地适应复杂 大系统不断发展与变化的要求。
2013-8-20
20
• 一个对象向另一个对象发出消息请求某项服务, 接收消息的对象响应该消息,激发所要求的服 务操作,并将操作结果返回给请求服务的对象。
Message
changeGears(lowerGear)
You Object A Object B YourBicycle
2013-8-20
21
2013-8-20
28
1.4.4 多态性
一般来讲,多态性(Polymorphism)就是多种形 态的意思。多态性是指使用相同名字定义了不 同的方法。多态性实际上提供了一种具体情况 具体分析的问题解决方案。具体来说,多态性 是指类中同一函数名对应多个具有相似功能的 不同函数,可以使用相同的调用方式来调用这 些具有不同功能的同名函数。
Байду номын сангаас
2013-8-20
7
1.1 面向对象技术的发展
• 面向对象技术源于面向对象的编程语言 (Object Oriented Programming Language,OOPL)。面向对象编程语言 的繁荣是面向对象技术走向实用的重要标志, 也是面向对象技术在计算机学术界、产业界 和教育界日益受到重视的推动。
2013-8-20
24
1.4.2 封装性
封 装 (Encapsulation) 就 是 把 对 象 的属性和行为结合成一个独立的 单位,并尽可能隐蔽对象的内部 细节。
2013-8-20
25
例如,电视机包括外形尺寸、分辨率等属性,具有打开、关闭、转换频 道等服务,如图1-10所示。封装意味着将这些属性和服务结合成一 个不可分的整体,用户通过按钮等接口使用电视机,而不关心其内 部的实现细节。
2013-8-20
23
• 将图书抽象成类,以及类实例化为对象的过程
图书类 属性: 书号 书名 作者 出版社 抽象 方法: 修改 借出 还入 创建
图书1 图书2 图书3 图书4 图书5 …
《解析Java程序设计》… 《解析C程序设计》… 《解析C++程序设计》… 《解析VC++程序设计》… 《解析VB程序设计》… …
2013-8-20 17
• 对于图书管理系统,我们可以考虑进一步识别出类的一些属 性和方法。为了避免过早的陷入细节中,以及适应将来在设 计时类的变化,在分析时,一般只把一些主要的属性和方法 标识出来。
借阅者类 属性: 姓名 借书证号 … 图书类 属性: 书号 书名 作者 出版社 出版时间 价格 …
9
2013-8-20
1.2面向对象方法与结构化方法的比较
• 按照结构化方法的思路,采用“自顶向下、 逐步求精”的方法,可以把问题描述中的 系统分解为一系列的模块。 • 结构化方法强调功能抽象与模块化,因 而结构化方法看作一系列处理的过程,也 就是以模块(即过程)为中心的开发方法。
2013-8-20
电视机类 属性: 外形尺寸 分辨率 方法: 打开 关闭 转换频道 ……
2013-8-20
26
1.4.3 继承性
继承(Inheritance)是一种联结类与类的层次模型。 继承性是指子类的对象拥有其父类的属性和行 为。继承简化了人们对现实世界的认识和描述, 在定义子类时不必重复定义那些已在父类中定 义过的属性和服务,只要说明它是某个父类的 子类,并定义自己特有的属性和服务即可。
2013-8-20 31
1.5 面向对象分析与设计简介
• 面向对象设计(Object Oriented Design,OOD)就是根据已建立的 分析模型,运用面向对象技术进行系 统软件设计。它将OOA模型直接变成 OOD模型,并且补充与一些实现有关 的部分,如人机界面、数据存储、任 务管理等。面向对象设计是定义系统 的构造蓝图、约定和规则,以指导系 统的实现。
2013-8-20
18
• 类与对象的区别和联系
类包含了对象的所有属性和方法,它是对象 的“模具”。对象是类的“实例”,可以 由一个类制造出多个实例。 【注意】类本身并不完成任何操作,它只是 定义对象的属性及方法,而实际的操作则 是由它所实例化的对象来完成的。
2013-8-20 19
1.3.2 事件和消息
5
留下联系方式
• 在整个教学进程中可能有些事情需要 临时通知大家,所以请每个班的班长 或学习委员在课间到我这里留下你们 的手机号码(最好是移动号码,方便 加飞信),以便联系。
第1章 面向对象技术概述
• 1.1 • 1.2 • 1.3 • 1.4 • 1.5 面向对象技术的发展 与结构化方法的比较 基本概念 面向对象技术的基本特征 面向对象分析与设计简介
2013-8-20 15
1.3 面向对象技术的基本概念
• 面向对象的精髓在于考虑问题的思路 是从现实世界的人类思维习惯出发的。 下面我们从实际问题出发来了解面向对 象的思维方法,认识面向对象方法中的 基本概念,如对象、类、消息、事件等。
2013-8-20
16
1.3.1 对象和类
对象是用来描述客观事物的一个实体,它是构成系统的 一个基本单位,由一组属性和对这组属性进行操作的一 组方法组成。属性是用来描述对象静态特征(即状态) 的一个数据项;方法是用来描述对象动态特征(即行为) 的一个操作序列。 将具有相同属性和操作,并遵守相同约束规则的对象聚 合成一组,这组对象集合就称为类(Class)。如自行车 类,它是许多自行车的抽象;又如茶杯,有不同大小的 茶杯,不同材料、不同形状、可以完全相同的许多茶 杯—茶杯类。