《Java语言程序设计教程》由会员分享,可在线阅读,更多相关《Java语言程序设计教程(1202页珍藏版)》请在金锄头文库上搜索。
1、Java语言程序设计教程Java语言程序设计教程面向面向21世纪高等学校计算机类专业系列教材世纪高等学校计算机类专业系列教材张席 戴劲 编著张席 戴劲 编著西安电子科技大学出版社西安电子科技大学出版社 http:/.目 录目 录?第第1章 预备知识章 预备知识?第第2章章 Java语言概述语言概述?第第3章 数组章 数组?第第4章 字符串章 字符串?第第5章章 Java例外处理例外处理?第第6章章 Java中类、对象、中类、对象、接口及包的概念接口及包的概念?第第7章章 Java的输入的输入/输出流输出流?第第8章章 Java的的GUI设计设计?第第9章章Java在多媒体中的应用在多媒体中的应
2、用?第第10章章 Java的线程处理的线程处理?第第11章章 Java网络通信程序的设计网络通信程序的设计?第第12章章 Java 小应用程序小应用程序(Applet)的设计的设计 策 划:马武装策 划:马武装 制 作:李林娜制 作:李林娜 监 制:梁家新监 制:梁家新 单 位:西安电子科技大学出版社单 位:西安电子科技大学出版社 电 话:电 话:029-8228788 传 真:传 真:029-8232746 主 页:主 页:http:/ E-mail:谢 谢 使 用!谢 谢 使 用!第1章 预备知识第第1章 预备知识章 预备知识1.1 目前流行的编程语言简介目前流行的编程语言简介1.2 从从
3、C/C+到到Java第1章 预备知识1.1 目前流行的编程语言简介目前流行的编程语言简介随着信息技术的快速发展与进步,电脑已渐渐成为当前人类社会中最重要的信息获取工具之一。同时 由于国际互联网(Internet)与其上相关应用系统的快速普及,可以说我们当前正处于一个“信息爆炸”时代。不同国家、行业被Internet连接在一起,相互通信,共享全世界的计算机资源和信息。第1章 预备知识如何保证不同格式的数据或信息安全、高速、自由的交流、传输就成为一个需迫切解决的问题。TCP/IP网络传输协议为我们提供了统一的传输协议,但该协议只是允许程序之间以无格式的二进制数据流来进行信息的传送,对语义的解释及维
4、护还需程序双方共同进 行,因而难以实现程序代码交换。1996年Sun公司Java语言的正式发表可以说是Internet的一次技术革命,它实现了程序的运行与平台无关,在网络上不仅可以进行无格式的数据信息交换,还可以进行程序交换。自 从Java推出以后,马上在全世界范围得以普及,现在,越来越多的程序设计人员开始用Java进行程序开发。第1章 预备知识在国外,80%以上的企业都在利用Java技术,各个数据中心大大小小的机器上更是离不开Java。最近,我们常常能从广播上听到,全球各手机公司都在利用Java推出其第三代手机,Sony公司所做的游戏机(以后能上网)里也嵌入了Java。不远的将来,我们在下班
5、的路上驾驶着汽车,甚至远在千里之外,将仍可以调节家中空 调的温度,可以控制家里的电饭煲给亲人做饭这一切,听起来是那么不可思议,但有了互联网,有了Java语言,有了其他先进的技术的结合,它们就会渐渐成为 现实。难怪比尔 盖茨发出感叹:“Java是最卓越的程序设计语言!”第1章 预备知识为了使读者对Java有一个更好的理解,我们首先介绍C、C+的一些基本特点,比较二者与Java的一些差异,为后续的学习作准备。第1章 预备知识我们知道,当前的程序开发语言多种多样,比如说有微软公司(Microsoft)的VC、VB及Borland公司的C+ Builder、Delphi,Sun公司的Java等等。其中
6、,最典型的当属C、C+及Java。C语言曾是国际上广泛流行的计算机高级语言。第1章 预备知识1.1.1 C/C+的一些概念C语言是贝尔实验室的Dennis Ritchie在B语言的基础上开发出来的,于1972年在一台DEC PDP-11计算机上实现了最初的C语言。C是作为UNIX操作系统的开发语言而开始广为人们所认识的。当今许多新的、重 要的操作系统都是用C或C+编写的。在过去20年内,C语言已经能够用在绝大多数计算机上了。由于C语言的一些显著特点,如与硬件无关、设计严谨,使得用C语言编写的程序移植到大多数计算机上成为可能。第1章 预备知识到20世纪70年代末,C已经演化为现在所说的“传 统的
7、C语言”。Kernighan及Ritchie在1978年出版的The C Programming Language一书中全面地介绍了 传统的C语言,当前,该书已经成为最权威的计算机学 术著作之一。C语言的不断发展导致出现了许多C语言版本,虽然大多版本是类似的,但通常都不兼容,这 对希望开发出的代码能够在多种平台上运行的程序开 发者来说是一个严重的问题。为了明确地定义与机器 无关的C语言,1989年美国国家标准协会制定了C语言 的标准(ANSI C)。Kernighan和Ritchie编著的The C Programming Language(第二版)介绍了ANSI C的全部 内容。第1章 预备
8、知识C语言具有其独特的优点,包括:(1) 语言简洁、紧凑,使用方便、灵活。C语言只有32个关键字,程序书写形式自由。(2) 丰富的运算符和数据类型。(3) C语言可以直接访问内存地址,能进行位操作,能够胜任开发操作系统的工作。(4) 生成的目标代码质量高,程序运行效率高。(5) 可移植性好。第1章 预备知识虽说C语言具有以上的一些优点,但在实际的程序开发过程中也暴露出了一些不足:(1) C类型检查机制比较薄弱,使得程序设计中的一些错误不能在编译时被发现。(2) C本身几乎没有支持代码重用的语言结构,因此一个程序员精心设计的程序,很难为其他程序共用。(3) 当程序的规模达到一定程度的时候,程序员
9、很难控制程序的复杂性。第1章 预备知识为了满足管理程序的复杂性要求,贝尔实验室的Bjarne Stroustrup开始对C进行改进和扩充。最初的成果 称为“带类的C”,1983年正式取名为C+。在经历了3次修订后,于1994年制定了ANSI C+标准的草案。以后又经过不断完善,成为目前的C+。C+包含了整个C,C是建立C+的基础。C+包括C的全部特征、属性和优点,同时添加了面向对象编程(OOP)的完全支持。第1章 预备知识1.1.2 从C到C+经过上面的描述,大家对C语言的优、缺点有了一个具体的认识。C语言从本质上说是属于过程性语言,其程序设计方法也是遵从于结构化程序设计。结构化程序设计的主要
10、思想是功能分解并逐步求精,比如,当一些任务非常复杂以至无法描述时,可以将它拆分为一系列较小的功能部件,直到这些自完备的子任务小到易于理解的程度。但是,采用结构化程序设计方法的程序员很快发现,每一种相对于老问题的新 方法都要带来额外的开销,通常称这为重复投入。第1章 预备知识基于可重用性的思想是指建立一些具有已知特性的部件,在需要时可以插入到程序之中。这可以说是一种模仿硬件组合方式的做法,当工程师需要一个新的晶体管时,当然不用自己去发明,只要去电子市场买一个就行了,对于软件工程师来说,在面向对象程序设计出现之前,一直缺乏具备这种能力的工具。C+语言包括过程性语言部分和类部分,类部分是C中所没有的
11、,它是面向对象程序设计的主体。可想而知,结构化程序设计随着C+的出现也过渡到了面向对象程序设计,所以从C到C+也是自然而然的事了。第1章 预备知识不过,C语言程序设计的经验非常有益,因为C程序设计开发锻炼了程序员进行抽象程序设计的能力, 这正是C+更为抽象的概念和技术的基础。而且,C+是C语言的扩展,它分享了C的许多技术风格。程序员使用C的经验越丰富,编写C+程序也就越容易,所以,对C的学习,能够促进对C+的学习,换句话说,C+的发展并没有完全抛弃C的一些特点。第1章 预备知识1.1.3 面向对象初步知识面向对象程序设计的本质是把数据和处理数据的 过程当成一个整体对象。面向对象程序设计的实现需
12、要封装和数据隐藏技术,需要继承和多态性技术。下面我们对这些概念作一描述。第1章 预备知识1封装和数据隐藏当一个工程师要安装一台电脑时,他将各个设备组装起来,如果需要一个声卡时,不需要用原始的集成电路芯片和材料自己去做,而是去电脑公司买一个符合其需要的声卡就行了。工程师所关心的是声卡的功能,并不关心声卡内部的工作原理,因为声卡是由电子厂商所提供,是自成一体的。这就是所谓的封装 性无需知道封装单元内部是如何工作的。声卡的所有属性都封装在声卡中,不会扩展到声卡之外,用户无需知道其工作原理就可以有效地使用。第1章 预备知识面向对象的程序设计通过建立用户定义类型或类支持封装性和数据隐藏。完好定义的类一旦
13、建立,就可看成是完全封装的实体,可以作为一个整体单元使用。类的实际内部工作应当隐藏起来,使用完好定义的类的用户不需要知道类是如何工作的,只要知道如何使用它就行了。第1章 预备知识2继承和重用要制造新的电视机,可以有两种选择:一种是从草图开始,另一种是对现有的型号加以改进。因为现有的型号可能已经令人满意,如果多加一个功能,就会更加完美,因而电视设计人员决不会推倒重来,一切从头开始,而是在原有的型号基础上增加一组电路或多加某些芯片来增强其已有的功能,完成之后,新型号的电视机就诞生了。这就是继承和重用的生活实例。面向对象的程序设计也采用继承和重用的思想:程序可以在扩展现有类型的基础上声明新类型;新的
14、子类是从现有类型派生出来的,称为派生类,但已在原有类的基础上增加了新的功能。第1章 预备知识3多态性类是通过继承的方法构造的,采用多态性可为每个类指定表现行为。举例来说,学生类应该有一个计算成绩的操作:对于中学生,计算成绩的操作可表示为对语文、数学、英语等课程成绩的计算;对于大学生,应可以继承中学生的基类,计算成绩的操作表现为对高等数学、计算机、大学物理等课程成绩的计算。实际的应用中,继承和多态经常会用到,这是因为:有了继承性,使得多个对象可以共享许多相似的特征;有了多态性,一个对象可以有其独特的多种表现方式。第1章 预备知识1.2 从从C/C+到到Java 前面我们已讨论了C及C+语言的一些
15、特点,相信大家对二者有了一定的认识。C+语言虽在计算机行业广为使用,但它的复杂与繁琐也令一般用户为之伤透脑筋。所以,为使程序开 发或设计人员从C+“返朴归真”,就需开发一种全新的程序设计语言。第1章 预备知识Java是由Sun公司开发的新一代程序设计语言,正在逐步成为Internet应用的主力开发语言,成为Internet上的世界语。为了开拓消费类电子产品市场,Sun公司于1991年成立了一个项目开发小组,其小组负责人是James Gosling。在研究开发过程中,Gosling感到消费类电子产品和工作站产品的开发存在较大的差异:消费类电子产品要求可靠性高、费用低、标准化、使用简单,而工作站用
16、户需要较强的计算能力,不考虑价 格以及操作的复杂性。消费类电子产品并不关心CPU的型号,只是要求整个系统与平台无关。第1章 预备知识Gosling首先尝试从改写C+编译器着手,但在改写过程中,感到C+无法满足要求,这促使他打算开 发一个新的语言后来命名为Java。该系统运行于一个巨大的、分布的、异质的网络环境中,以完成电子设备之间的通信与协同工作。为达到此目的,设计过 程中采用了虚机器码技术(Virtual Machine Code)。编好的程序经过编译后产生的就是虚机器码,其不能单独运行。当操作系统安装了对应的解释器后,可通过该 解释器解释执行虚机器码,至此,与平台无关的Java语言就产生了。第1章 预备知识Java的开发主要是以C+作为蓝图,因此它的大部分语法与C+相似,但为了达到真正的面向对象,C+中很多过程式程序设计语言必须舍弃掉。Java开发的目