Java程序设计教程叶核亚_第1页
Java程序设计教程叶核亚_第2页
Java程序设计教程叶核亚_第3页
Java程序设计教程叶核亚_第4页
Java程序设计教程叶核亚_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《高级语言程序设计》12014.92教材、参考书教材Java程序设计实用教程叶核亚参考书ThinkinginJava(4thEdition),作者:(美)BruceEckel,出版社:PrenticeHallPTR。Java程序设计教程.作者:H.M.Deitel/P.J.Deitel出版社:清华大学出版社。Java程序设计实用教程作者:耿祥义,出版社:人民邮电出版社。3《Java程序设计实用教程》(第3版)第1章Java概述第2章Java语言基础第3章类的封装、继承和多态第4章接口、内部类和JavaAPI基础第5章异常处理第6章图形用户界面第7章多线程第8章Applet应用程序第9章输入/输出流和文件操作第10章网络通信第11章数据库应用第12章综合应用设计4第1章Java概述1.1Java简介1.2Java程序分类及执行机制1.3JDK的安装、设置与使用1.4Eclipse/MyEclipse简介本章简要介绍Java语言的特点和核心技术,介绍Java两种应用程序Application和Applet的基本形式,以及由虚拟机支持的程序运行机制;以Windows平台的JavaSE6版本为例,介绍JDK的安装和设置方法,以及编译、运行Java程序的方法;介绍在Java集成开发环境MyEclipse中编辑、编译和运行Java程序的方法。5第1章Java概述短短的十几年间,Java凭借平台无关、健壮、安全、高效这些适应网络运行需要的特点,Java快速成长,不仅在Internet上游刃有余,而且通过JavaME、JavaSE、JavaEE三大平台,其应用领域全面覆盖了嵌入式应用、桌面应用和企业级应用,所表现出的强大的应用系统设计能力,使Java无处不在。本章内容概要介绍Java特点和核心技术;介绍Java两种应用程序Application和Applet的基本形式,以及由虚拟机支持的程序运行机制;介绍JDK的安装和设置方法,以及编译、运行Java程序的方法;介绍在Java集成开发环境MyEclipse中编辑、编译和运行Java程序的方法。61.1Java简介1.1.1Java的诞生和发展1.1.2Java语言的特点及优势1.1.3Java的核心技术71.1.1Java的诞生和发展前身Java的前身是源于20世纪90年代初Sun公司的一个叫Green的项目,该项目旨在开发一个嵌入家用电器的分布式软件系统。该系统最初采用C++进行开发,但因C++语言过于复杂、安全性差,于是项目小组只好另辟蹊径,在“简单的、可靠的、紧凑的并易于移植的”的框架内开发了一个小型的计算机语言,当时取名为Oak,即橡树的意思。诞生当Oak语言成熟之时,全球互联网也正兴起,SUN公司很快意识到Oak有了更好的用武之地。项目组使用Oak首先编制了HotJava浏览器,并取得很大成功,由此触发了Oak进军Internet。1995年Oak注册登记时发现该名已被占用,遂更名为Java,因爪哇咖啡而得名。经过一番市场运作后,Oak以Java的新身份逐渐得以走红。8Java发展大事记1995年5月23日,Java语言诞生。1996年,正式发布JDK1.0和HotJava。JDK(JavaDevelopmentKit)集成了Java编程语言、开发工具、环境和Java类库等。1998年,JDK1.2发布,称为Java2平台(Java2platform),并分为标准版、企业版和微缩版3个版本,分别简称为J2SE、J2EE、J2ME。2004年10月,期待已久的JDK1.5发布。为了突显这个版本重大更新SUN公司将原平台称谓中的"2"字去掉,将简写名称中的"J"改为全称"Java",版本号改为5.0。三个版本分别改称为JavaSE5.0、JavaEE5.0、JavaME5.0。2006年12月,JavaSE6.0发布。企业版的发布往往比标准版晚1-3年。如JavaEE6.0直到标准版发布3年后的2009年12月才正式发布。91.1.2Java特点Sun公司在“Java白皮书”中对Java的定义是:“Java:Asimple,object-oriented,distributed,interpreted,robust,secure,architecture-neutral,portable,high-performance,multi-threaded,anddynamiclanguage.”。翻译过来就是:Java是一种具有“简单、面向对象的、分布式、解释型、健壮、安全、与体系结构无关、可移植、高性能、多线程和动态执行”等特性的语言。下面我们简要叙述Java的这些特性:10简单性内核:基本Java系统(编译器和解释器)所占空间不到250KB。语言:摈弃了C++语言的全程变量、goto语句、宏定义、全局函数以及结构、联合和指针数据类型。提供语言级的内存自动管理和异常处理方式。完全面向对象面向对象:程序=对象+消息(面向过程:程序=数据结构+算法)Java是纯面向对象的语言,所有设计都必须在类中实现,一个Java程序就是多个类的集合。可靠性语言级别:提供严密的语法规则,在编译和运行时严格检查错误。运行架构级别:自动资源回收机制,减小了内存出错的可能性,减轻了程序员的工作量,提高了程序运行的可靠性。11安全性采用域管理方式的安全模型,可以通过配置策略设定可访问的资源域。摒弃指针、数组下标越界检查、自动内存管理等,使Java成为最安全的编程语言和环境之一,Java代码无法成为类似特洛伊木马、病毒和蠕虫等具有潜在破坏作用的东西。分布式直接支持分布式的网络应用,实现高效的网络编程多线程提供环境级和语言级的多线程支持,从而提高了程序执行的并发度,提高系统执行效率。平台无关性Writeonce,runanywhere:程序不经修改即可在不同硬件或软件平台上运行(Java虚拟机)。121.1.3Java核心技术Java支持的多种核心技术,满足了企业级应用对软件在安全性、可靠性、高效性上的高要求,使JavaEE成为开发分布式企业级应用的工业标准。主要核心技术包括:JDBC/JTA/JPA

:Java数据库相关技术JSP/Servlet/JSF:Java服务端表示层技术JavaBean/EJB:Java组件技术JavaMail:Java邮件开发技术JNDI:Java命名和目录服务技术本课主要介绍Java语言基础及面向对象编程的方法,有兴趣的同学可以多关注这些相关技术131.2Java程序分类及执行机制1.2.1Java程序分类1.2.2Java程序执行机制141.2.1Java程序分类ApplicationJava应用程序,是可在Java虚拟机环境中直接运行的Java程序Applet即Java小应用程序,是可随网页下载到客户端由浏览器解释执行的Java程序。Servlet即Java服务器端小程序,是配置在Web服务器(容器)中运行的Java程序。JavaBeans即Java组件,是可重用的Java数据和功能的封装,由其它程序调用执行。1.2.2Java程序执行机制161.3JDK安装、设置与使用1.3.1JDK的安装与设置1.3.2编译和运行Java程序1.3.3包171.3.1JDK的安装与设置安装JDK从Sun公司的网站()下载JDK工具包(jdk-6u20-windows-i586.exe或java_ee_sdk-6-windows.exe),然后安装。设置环境变量WindowsXP设置path:D:\jdk1.6\bin;classpath:.;D:\jdk1.6\jre\lib\rt.jar;

或.;D:\jdk1.6\lib\dt.jar;D:\jdk1.6\lib\tools.jarMyEclipse中设置默认已设置好自带的JDK库,也可如下操作改为专门安装的JDK库选择[windows|preferences]→[java|installedJREs],点<Add…>,选StandardVM,然后设置JDK的主目录。18JDK常用工具集工具名称说明JavacJava编译器,用于将Java源程序.java编译成字节码.class用法:javac[选项]<源文件>JavaJava解释器,用于解释执行Java字节码.class或.jar用法:java[选项]<类文件名>[命令行参数]或java-jar[选项]<JAR文件名>[命令行参数]appletviewer小应用程序浏览器,用于测试和运行Javaapplet程序用法:appletviewer[选项]<HTML文件>JavadocJava文档生成器,从Java源文件生成API文档HTML页用法:javadoc[选项]<软件包名>[源文件][@file]Javap类反汇编器,用于查看类文件中的所有声明(类名、方法名、字段)用法:javap[选项]<类文件名>Jar打包程序,用于将多个类压缩到一个扩展名为jar的文件中。用法:jar<ctxu>[其它选项]类文件1类文件2...JavahC头文件生成器,利用此命令可实现在Java类中调用C++代码用法:javah[选项]<类文件名>191.3.2编写、编译、运行Java程序Java程序运行流程20基本步骤(1)

利用文本编辑器建立Java源程序文件.java;(2)

利用Java编译器(Javac.exe)编译该application,生成字节码文件.class;(3)

利用解释器(java.exe/javaw.exe)解释执行字节码文件。下面以【例1.1】Hello.java

为例说明JavaApplication程序的建立、编译及运行过程。JavaApplication程序21(1)建立Java源程序文件利用任何一个文本编辑器来建立Java源程序文件Hello.java。如DOS的EDIT、Windows的记事本、写字板、Word等。保存文件时取扩展名.java。需要特别注意的是,文件名必须与类名完全一致(包括大小写)!(2)编译利用Java编译器(Javac.exe)对源文件进行编译。在DOS提示符后,键入命令:javacHello.java

。若源文件无错误,则产生Hello.class字节码文件;若源文件中有错误,则编译器将指出错误位置,此时需返回上一步对源文件进行修改。注意:扩展名.java不能少!(3)运行利用Java解释器(java.exe)解释执行字节码文件。在DOS提示符后键入命令:javaHello,屏幕上将输出:Hello!注意:不能带扩展名.class!22程序分析publicclassHello这一行表示声明此程序要建立一个新类,类名为Hello。Public修饰符声明这个类是公共类,而这个类定义的内容就在后面紧跟的花括号内。任何Java程序都必须以类的形式出现,一个程序中可以定义若干个类,但只能定义一个public类。定义类必须用关键字class作为标志。文件名必须与public类的类名一致。在publicstaticvoidmain(Stringargs[])行定义了一个主方法,当程序执行时,解释器会找主方法,它是程序的入口点。其中:public表明所有的类都可以调用这个方法,static表明这个方法可以通过类名直接调用,而void表明此方法执行后不返回任何值。Stringargs[]是向main传递的参数,为字符串数组。23main后面紧跟的花括号是main方法要执行的功能,这里只含一条语句:System.out.println(“Hello!");此语句的功能是输出字符串“Hello!”。这里的System是Java系统类库中的一个类,利用此类可以获得Java运行环境的有关信息和输入输出信息等;out是System类中的一个属性(代表标准输出);println()是out对象的一个方法,此方法的作用是向标准输出设备(显示器)输出参数指定的字符串,输出完成后光标定位在下一行。【例1.3】通过命令行参数输入数据的Java应用程序示例24基本步骤(1)

利用文本编辑器建立Java源程序文件;(2)

利用Java编译器(Javac)编译该JavaApplet,产生.class文件;(3)

建立一个HTML文件,在其中嵌入Java字节码文件;(4)

用WWW浏览器或appletviewer装入该HTML文件,使Applet运行。下面以【例1.2】HelloApplet.java为例,来说明Applet程序的建立、编译及运行过程。JavaApplet程序的建立及运行25(1)建立JavaApplet源程序文件建立JavaApplet源程序文件的方法与建立JavaApplication源程序文件的方法相同。取名:HelloApplet.javaimportjava.awt.*;importjava.applet.Applet;public

classHelloAppletextendsApplet{

public

voidpaint(Graphicsg){g.setColor(Color.RED);g.drawString("Hello,Applet!",50,50);}}26(2)编译编译JavaApplet与编译JavaApplication方法相同。键入如下命令:

javacHelloApplet.java(3)建立一个HTML文件用文本编辑器建立名为HelloApplet.html的HTML文件,并输入下面两行语句:<appletcode="HelloApplet.class"height=100width=300></applet>(4)运行在DOS提示符后输入命令:

appletviewerHelloApplet.html

也可直接用浏览器打开该网页文件(可能会因为浏览器的设置而无法显示)。27程序分析import语句:用于导入Java类库中的类,相当于C语言的include。本程序调用了java.awt包中的Graphics类和java.applet包的Applet类。publicclassHelloApplet

extendsApplet:该语句声明此程序要建立一个名为HelloApplet的新类,extendsApplet说明该类是Applet的子类。Applet程序都必须是Applet的子类。publicvoidpaint(Graphicsg):定义名为paint的方法,用于绘出JavaApplet对象的内容。参数g是属于Graphics类的对象。g.drawString("JavaNow!",25,25):调用Graphics类对象g的drawString()方法,将字符串"Hello,Applet!"显示在applet画板中。该方法有3个参数:第1个参数是要显示的内容,第2、第3个参数指定字符串在applet窗口中显示的位置(x、y坐标,以像素为单位)。对于JavaApplet的更多知识,将在第8章进一步介绍。在HTML文件中可用<APPLET>标记指示要插入网页中的Applet程序,CODE指明Applet字节码文件的文件名;width、height指出applet窗口的宽与高。281.3.3包包的概念包是Java组织和管理.class文件的一种方法,通常将功能相同或相关的类组织在一个包中。例如java.io包中的类都与输入、输出有关。一个包实际上就是一个文件夹,这个文件夹中存放着.class文件。包可以有多层结构,而各层之间以点(.)分隔,如java.io,java.awt,java.awt.color等。引用包中的类包{.子包}.类|接口导入包导入单个类:import

包{.子包}.类|接口;

按需导入类:import

包{.子包}.*;

默认包路径:.29声明类所在的包

要将类组织到包中,不仅仅是建立文件夹层次,还须在类文件中指明存放的包。即在程序的开头加一语句:package包{.子包};Java源程序结构package //0或1个,必须是第一条语句import //0或n个publicclass或interface //0或1个 //源程序的文件名必须与该公共类/接口同名class //0或n个Interface //0或n个

【例1.4】创建及使用包30打包应用程序可以使用Java打包工具jar.exe将包结构及应用程序的所有.class文件压缩成.jar包。语法:jar{ctxui}[vfm0Me][jar-file][manifest-file][entry-point][-Cdir]files...说明:ctxui只能有一个,c-创建新的归档文件,f-指定归档文件名,m-从指定文件中提取信息生成清单文件(MANIFEST.MF),x-解压归档文件中的指定(或所有)文件,…示例:①jarcfmyjar.jar*.class

//将当前目录下的所有.class文件打包进myjar.jar中,并生成META-INF文件夹,其中有一个默认的清单文件MANIFEST.MF②jarcfmmyjar.jarmymf.txt*.classmydir

//将当前目录下的所有.class文件和mydir及其子目录中的所有.class文件打包 进myjar.jar中,并在包中创建META-INF文件夹,其中的清单文件MANIFEST.MF内容从mymf.txt文件中提取。

31JavaAPI类库的常用包包名功能java.lang语言包Java语言的核心类库包含Java语言必不可少的系统类定义,包括Object类、基本数据类型封装类、数学运算、字符串、线程、异常处理等java.util实用包实用工具类库,包含日期类、集合类库等java.awt抽象窗口包提供构建图形用户界面的类库,包含组件、事件及绘图功能java.applet实现Applet应用程序java.text文本包提供各种文本或日期格式化等类,如Format、DateFomat、SimpleDateFormatjava.io输入/输出流包提供标准输入、输出流及文件操作类库网络包提供网络编程有关的类库,包括Socket通信支持、Internet访问支持等java.sql提供数据库应用功能的类库javax.swing扩充和增强图形用户界面功能的类库表1-3JavaAPI的常用包32查阅API文档从SUN官网可下载英文版的API文档,如jdk-6-doc.zip,解压后打开..\docs\api\index.html文件,就可在浏览器中查看JDK的所有包中的类的说明文档,包括类/接口的属性构成、构造方法、功能方法等的使用说明。网上也有中文版的API文档,通常做成了电子书(.chm),方便下载和阅读(演示)。窗口左侧显示所有包及层次关系,右侧显示选定类/接口的说明文档。查阅API源码在JDK的安装目录下有一个压缩文件src.zip,其中包含了JDK所有类/接口的源码。参考官方规范化的源码有利于提升自己的编程水平。在MyEclipe的源码编辑窗口,只要在类名上按F3键就可快速查看其源码。331.4Eclipse/MyEclipse简介Eclipse是一个开源、免费的Java集成开发环境(IDE),支持插件扩展,被广泛应用。MyEclipse是Eclipse的一个插件,它大大增强了Eclipse的功能。MyEclipseEnterpriseWorkbench是被广泛应用、功能强大的JavaEE集成开发环境,它支持代码编写、调试、编译以及应用布署等所有功能,完整支持HTML、Struts、JSF、CSS、JavaScript、SQL以及第三方框架开发。341.4.1MyEclipse集成开发环境下载、安装MyEclipse从MyEclipse官网/可下载MyEclipse开发平台。最新版安装文件文件是myeclipse-8.5.0-win32.exe。在安装myeclipse之前通常应先安装JDK,myeclipse安装十分简单,通常只须选择合适的安装路径,其他选项保持默认即可。在安装过程中,MyEclipse会自动寻找JDK。第一次启动MyEclipse会弹出如图1.13所示的对话框,询问工作区路径。工作区(workspace)是指存放源程序文件及配置文件的文件夹。35界面MyEclipse集成开发环境界面如图1.14(P16)所示。如今这种界面已逐渐成为业界的一种标准。MyEclipse集成开发环境包括菜单栏、工具栏、视图、编辑器、状态栏等。视图是MyEclipse的功能子窗口,可更改各视图的大小,移动位置。双击某视图标签可最大化或还原视图窗口。若干视图组合称为透视图(Perspective)。执行"Window|ShowView"可显示所需视图。执行"Window|OpenPerspective"可打开所需透视图。透视图也会在相应操作时自动打开。常用视图及功能说明如表1-4(P16)所示。36表1-4MyEclipse常用视图及功能说明视图功能说明Navigator显示项目中的文件列表PackageExplorer显示项目中的包和文件Outline显示编辑器中的当前文件的方法声明。单击方法名可快速定位到指定方法Hierarchy显示当前类的继承关系Problems显示编译错误和警告信息Console显示控制台程序的运行结果Tasks显示代码中未完成的任务Debug显示调试信息Variables显示调试过程中的变量值37代码提示和源代码查看MyEclipse具有代码提示和源代码查看等功能。在编辑器中,当类名或对象名后输入点(.)时将自动出现代码提示窗口,从中可选择输入所需要的成员变量或方法。当按住Ctrl键并单击类名或方法名时,如String类或println(),将打开指定类或该方法所在的类,可查看该类源码及方法声明细节。也可在类名或方法名上按F3完成同样功能。38工作区(workspace)和项目(project)一个复杂点的应用程序通常需要多个类和多个程序文件构成。Eclipse以项目(project)为单位管理应用程序,一个项目对应一个应用程序,其中包含多个文件,项目本身保存为项目文件。一个大型企业级应用通常包含多个不同种类的应用程序,每个应用对应一个项目,Eclipse以工作区(workspace)来管理多个项目,一个工作区对应一个文件夹。工作区、项目、程序文件及其关系如图1.15所示。工作区项目1Java程序1.javaJava程序2.java项目2391.4.2创建Java项目并运行创建Java项目选择"File|New|JavaProject"→打开"NewJavaProject"对话框→输入项目名→单击<Finish>按钮,即可在当前工作区中创建一个新项目,并创建与项目同名的文件夹(演示)。各选项含义如图1.16所示。创建Java类选择"File|New|Class"→打开"NewJavaClass"对话框,输入类名(如Hello)→单击<Finish>按钮,将在Sourcefolder指定的文件夹中创建文件Hello.java,并打开该类的编辑窗口。编辑、编译和运行Eclipse编辑器功能强大,除具有常规文本编辑器的所有功能(Copy、Cut、Paste、Delete、Undo、Redo、SelectAll、Find/Replace)。还具备分色显示、智能输入、动态帮助等功能。MyEclipse默认即时编译,保存的同时即编译。点击工具栏Run图标即可运行当前源程序,运行结果或打开窗口或显示在Console视图中。40重构选择快捷菜单"Refactor|Rename",可更改当前项目或类的名称,相应的文件夹名将被同步更改,类名、对应源程序文件名以及该类名的所有引用也被同步更改。切换工作区选择"File|SwitchWorkspace",在打开的对话框中可选择另一个文件夹作为工作区。访问其他项目中的类和添加JAR包在项目上选择快捷菜单"BuildPath|ConfigureBuildPath",然后选择Projects页,单击<Add>按钮可将其它项目,以便访问本项目外的类。选择Libraries页可添加外部jar包或MyEclipse自带类库等。设置运行的命令行参数选择"Run|RunConfigurations…"打开Run配置对话框,在Arguments页的Programarguments编辑框中输入命令行参数,多个参数以空格分隔。411.4.3程序调试技术在软件开发过程中,程序出错往往是不可避免的。调试程序、排除错误是程序员无法回避的工作。调试方法有许多种,归根结底都是为了找到引发错误的代码。程序调试能力是程序员必须掌握的一项基本技能,与程序设计能力相辅相成。只有具备较强的程序调试能力,才能拥有强大的程序开发能力,才能算是一个合格的程序员。Eclipse内置的Java调试器提供了所有标准调试功能,包括单步执行、设置断点和值、检查变量和值以及暂挂和恢复线程等。42程序错误、发现时刻及错误处理原则当程序不能正常运行或者运行结果不正确时,则表明程序中有错误。按照错误的性质可将程序错误分成三类:语法错、语义错、逻辑错。这三类错误的发现时刻不同,处理错误的方式也不同。语法错(syntaxerror)又称为编译错,指违反语法规范的错误。如标识符未声明、表达式中运算符与操作数类型不匹配、赋值时变量类型与表达式类型不兼容、括号不匹配、语句末尾缺少分号、else没有匹配的if等。MyEclipse能在编辑时发现语法错误并以红色x来标记出错行,当鼠标移向出错标记时会给出错误信息。程序员必须及时改正语法错,再重新编译程序。语义错(semanticerror)指存在语言含义错误。如数据格式错、除数为0错、变量赋值超出其范围、数组下标越界等。语义错在运行时会被发现,故又称为运行错(run-timeerror)。MyEclipse运行时一旦发现语义错,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论