Java语言程序设计第一章.ppt_第1页
Java语言程序设计第一章.ppt_第2页
Java语言程序设计第一章.ppt_第3页
Java语言程序设计第一章.ppt_第4页
Java语言程序设计第一章.ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1,Java 语言程序设计,吴倩,2,课程概要,第一部分:Java 语言 第一章:Java 程序设计概述 第二章:Java语言基础知识 第三章:类与对象 第四章:类的重用 第五章:接口与多态 第二部分:Java类库 第六章:异常处理 第七章:输入与输出 第八章:多线程 第九章:对象的集合,3,第三部分 Java与GUI 第十章:图形用户界面 第十一章: Java applet 第四部分 Java与网络 第十二章 :JDBC与Java网络套接字 第十三章:Java Server Page 第十四章:Servlet,4,第一章 Java 程序设计概述,1、Java语言的历史、应用及发展 2、Java语言的特点 3、Java程序的开发环境 4、Java类库 5、Java程序介绍 6、Java程序书写规范,5,1、Java语言的历史、应用及发,1.1 Java语言的历史 1991年,SUN MicroSystem公司的Jame Gosling、Bill Joy等人为智能消费类家用电器研究而开发的电子产品上一个名为Oak的软件。 1993年,web开始在Internet上流行,Oak重新命名为Java,Java技术转移到Internet。 1995年Sun向公众正式推出Java并引起业界的轰动。 1995年以来,Java逐步实现了面向网络应用,类库不断丰富,性能不断提高,应用领域不断拓展。,6,Java已成为当今最流行的软件开发语言之一,Sun推出了 Java2 & J2EE使Java具有更广泛的用途,适用于各种应用开发,尤其是网络应用,网络服务,嵌入式系统等。 Java与就业:2008年国内软件行业调查表明:程序员使用的开发语言比例如下:C/C+占32%, Java占37%,.Net占22%,C#占21%, Delphi占7%。,1.2 Java 语言的应用,7,Java语言的应用前景: 所有面向对象的应用开发。 计算过程的可视化、可操作化的软件的开发。 动态画面的设计,包括图形图像的调用。 无线通信,嵌入式系统。 英特网的系统管理功能模块的设计,包括Web页面的动态设计、管理和交互操作设计等。 企业内部网上的软件开发。 与各类数据库连接查询的SQL语句实现。 分布式网络系统软件开发。 其他应用类型的程序。,8,1.3 Java语言的发展,从1995年Java正式推出至今10年时间内,Java共推出了7个版本,平均每18个月发布一个新版本。 每一次版本的推出都在功能上有所增强,完善,效率上有所提高,为程序员提供更多的方便,以吸引更多的程序员喜欢并使用Java。 其发展历程如表所示:,9,Java自JDK1.0.2 到Java2 v6.0以来的演变过程,10,11,1999年下半年,Sun Microsystems 重新组织Java平台的集成方法,并将Java企业级应用平台作为发展方向,因此,现在Java的大家庭中有三个主要成员: (1)J2SE即Java 2 (Software Development Kit) Standard Edition,是Java最通行的版本,用于工作站,PC机的Java标准平台。 (2)J2ME即Java2 Micro Edition, 用于嵌入式Java消费电子平台。无线通讯,手机,PDA等小型电子装置都可以采用其作为开发工具及应用平台。 (3)J2EE即Java2 Enterprise Edition (企业应用Java 2平台,它提供了企业e-Business架构及Web Service服务。其深受企业用户欢迎之处在于其开放的标准和优越的跨平台能力。,12,2、Java 语言的特点 (1)面向对象,Java 是一种面向对象的语言。和C+类似,具有面向对象的基本特征: 封装:提供了类的机制,在类中封装了数据和方法,保证数据的安全性。 继承:通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。 多态:同一个消息被不同的对象接收后可以导致不同的行为。,13,2、Java 语言的特点 (2)易于学习,Java语言简单,它的语法和C+非常相似,但是抛弃了C+中的许多低级,容易混淆,容易出错,不经常使用的功能,如:运算符重载,指针运算,多重继承,程序的预处理,命名空间等。,14,2、Java 语言的特点 (3)与平台无关性,Java源程序经过编译器编译,会生成与平台无关的字节码(byte-codes)代码程序,这些字节码指令对应于Java虚拟机的表示,只要安装了Java运行系统, Java解释器得到字节码后,对它进行转换,生成的代码程序能够在同一系统或其他任何系统上运行,如:Windows, Solaris, Linux, 其他任何一种Unix操作系统,移动电话,嵌入式处理器,PDA等。 这也称为软件可移植性,也就是“编写一次,到处运行”,这也正是Java得以迅速普及的重要原因。,15,编写一次,到处运行,16,编译型语言的工作模式,17,解释型语言的工作模式,Java是一种解释型语言,其编译源程序的执行方式是先经过编译器编译,再利用解释器的方式运行的。 解释器在工作方式上与编译器不同,它不对源程序进行翻译,而是直接对源程序的语句进行分析和解释,实现源程序所描述的功能。 任何一种可以运行Java程序(即可以担任Java解释器)的软件都可以成为Java虚拟机JVM(Java Virtual Machine),例如浏览器与Java的一些开发工具都可以看作JVM。 如下图所示:,18,源程序 (.java文件),Java编译器,SPARC,pentium,Powerpc,Powerpc,pentium,SPARC,二进制,Java解释器,类、类库装载,字节码程序 Java Bytecode (.class文件),19,2、Java 语言的特点 (4)分布式,分布式主要指数据分布和操作分布,数据分布指数据可以分散在网络中不同的主机上,操作分布指一个任务分散在不同的主机上进行处理。Java从诞生起就和网络联系在一起,它强调网络特性,内置TCP/IP, HTTP,FTP 协议类库,便于开发网络应用系统。,20,2、Java 语言的特点 (4)安全性,Java不支持指针,规定对内存的访问都必须经过对象的实例变量实现,防止非法访问私有成员。 Java的内部安全措施保证Java程序在Java虚拟机规则下操作,防止未授权的程序访问专有信息资源。,21,2、Java 语言的特点 (5)多线程,单线程程序一个时刻只能做一件事情,多线程程序允许在同一时刻同时做多件事情。 Java是第一个在语言级提供内置多线程支持的高级语言。Java提供现成的类Thread,只要继承这个类就可以编写多线程的程序。 多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。 通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。,22,2、Java 语言的特点 (6)与C+比较,不再有全局变量,可以在类中定义公有、静态的数据成员实现相同功能; 不再有#include 和#define 等预处理功能,用import语来句包含其它类和包; 不再有structure、union及typedef等 Java中没有不属于类成员的函数,没有指针、不再有多重继承,只支持单重继承; 不再有goto语句 不再有运算符重载(Operatior Overloading) 取消自动类型转换,要求强制转换 自动进行内存管理 (详细比较可参考:thinking in Java 附录B Java和C+比较),23,3、 Java程序的开发环境,Java APIs (应用程序接口) 经过编译的,可在程序中使用的Java代码标准库。 Java VM(虚拟机) Java 程序由Java虚拟机程序执行(或解释执行)。,Java 平台,24,J2SEJ2SDK的核心部分 开发工具 编译器 调试器 文档制作工具 运行环境 Java 虚拟机 组成Java 2 平台API的类。 帮助文档 附加库 Java程序(Applets 和 Applications) 的演示 ,25,3.1 Java 开发工具,Java 2 标准版软件开发工具包J2SDK, 包括开发工具,运行环境,附加库,Applets和Applications的演示等内容。 J2SDK常用工具包括 Javac: Java编译器,用来将java程序编译成 Bytecode。 Java: Java解释器,执行已经转换成Bytecode的java应用程序。 Jdb: Java调试器, 用来调试java程序。 Javap: 反编译,将类文件还原回方法和变量。 Javadoc: 文档生成器,创建HTML文件。 Appletviwer: Applet解释器, 用来解释已经转换成Bytecode的java小应用程序。,26,3.2 开发工具安装,环境安装以jdk 6为例 下载地址 下载文件 下载 jdk-6u5-windows-i586-p.exe 安装 直接运行 jdk-6u5-windows-i586-p.exe ”,27,安装JDK后产生如下目录: bin目录:Java开发工具,包括Java编译器、解释器等 demo目录:一些实例程序 lib目录:Java开发类库 jre目录: Java运行环境,包括Java虚拟机、运行类库等 ,28,设置环境变量:(现已不再使用) PATH = bin; 设置Java的Path,目的是让Java程序设计者在任何环境都可以运行SDK bin目录下的工具文件,如:javac, java, javadoc等。 CLASSPATH = . ; ; 设置classpath的目的是让Java虚拟机找到所需要的类库。 Windows NT/2000/XP:控制面板系统高级环境变量,29,3.3 Java集成开发环境,几种集成开发环境 netBeans Jcreator LE Borland JBuilder Microsoft Visual J+ IBM : Visual Age for Java Sun ONE Studio BEAs Workshop Studio Eclipse,30,我们使用Eclipse3.4作为开发平台。 Eclipse 是一个开源,基于Java的开发环境(Integrated Development Environment) IDE, 是一个功能完整并成熟的软件,由IBM与2001年首次推出。可以从官方网站:免费下载。 Eclipse 是一个框架和一组被称为平台核心的服务程序,用于通过插件组建构建开发环境。 使用Eclipse来开发Java程序,必须安装SDK作为它的插件才能使它正常运作。 Myeclipse是eclipse的开发插件,它将很多Java应用服务器,J2EE组件和Web应用开发向导工具集成到Eclipse中,可以帮助Java开发者在Eclipse环境内建立,测试和部署J2EE应用。 课后请自己查找Eclipse相关资料学习。,Eclipse 简介,31,4、Java 类库,组成Java程序的最小单位是类,类封装了数据与处理数据的方法。 对于大多数常用的功能,有大量已经编译好、经过测试的类,这些类的集合就是Java类库。 Java类库主要是随编译器一起提供,也有些类库是由独立软件开发商提供的;当然也有你自己开发的。,32,类库被组织成许多包,每个包又包含一些子包和多个类。形成树型结构的类层次,其中包括核心包java, 扩展包,和org等。 Java的应用程序接口(API)是一个巨大的类库的集合,从/docs/index.html下载,可以看到Java配套提供的各种类库。(课后参考资料里将给出)。 一些重要的包及其类:,33,Java Packages (1),Language java.lang 构成Java语言核心的类 Object, Math, String, Number, Exception, System, Runtime Utilities java.util 提供实用的数据结构 Vector, Stack, Hashtable / Colloection, List, Set, Map I/O java.io 提供多种类型的输出/输出 InputStream, OutputStream, Reader, Writer, RandomAccessFile, File Text java.text 文本/日期/数字/消息的本地化支持 NumberFormat, DateFormat, and Collator Math java.math 提供任意精度的整数和浮点数运算 AWT java.awt 用户接口设计和事件处理 Swing javax.swing 提供全Java的,在任何平台上表现 都相同的轻量级构件,34,Java Packages (2),Javax javax 对Java语言的扩展 Applet java.applet 用于创建Applet的类 Beans java.beans 用于开发JavaBeans的类 Reflection java.lang.reflect 用于动态获取类信息的类 SQL java.sql 提供对数据库中数据的访问和处理 Connection, ResultSet, Statement RMI java.rmi 支持分布式编程 Networking 支持开发网络应用的类 Socket, URL, URLConnection Security java.security 支持访问控制和信息安全的类 用于访问控制,防止非信任代码执行关键操作 认证相关的类,实现了消息摘要和数字签名与数字认证等,35,、Java程序介绍,Java程序主要有以下几种: Application (应用程序) Java Applet Servlet Jsp,36,5.1 Java Application,Application 运行在客户端Java虚拟机上的Java程序 可在客户端机器中读写 可使用自己的主窗口、标题栏和菜单 程序可大可小 能够以命令行方式运行 主类必须有一个主方法main(),作为程序运行的入口。,37,import java.util.*; public class HelloDate public static void main(String args) System.out.println(“Hello, its: ”); System.out.println(new Date(); 编辑存盘:文件名和公共类名(用public声明)要一致 HelloDate.java 编译程序:javac HelloDate.java 运行程序:java HelloDate 使用Eclipse, 创建一个Java的project,编译和运行一步到位。,第一个Java应用程序,38,java.lang是默认导入到每个java文件的,无需用import 导入。它的类都可以直接使用。System属于java.lang。 java.lang里没有Date类,所以必须导入util才能使用Date类。 声明一个类:public class HelloDate,类名第一个字母大写。 一个类中可有很多方法(在Java里,函数称为方法method), main方法是运行程序的第一个方法,方法名的第一个字母小写。 System.out.println向屏幕输出,并自动结束,无需加“n”,相当于C中的printf(),C+中的cout。在这里,传递的参数是一个Date对象,将被自动转换为String类型。这条语句结束后,Date对象会被垃圾回收器在任意时候回收,我们不用销毁它。,39,package语句:零个或多个,必须放在文件开始。 import语句:零个或多个,必须放在所有类定义之前。 可以定义零个或一个public class 。 可以定义一个或多个class。 可以定义一个或多个interface。 类个数:至少一个类,最多只能有一个public class。 源文件命名:若有public类,源文件必须按该类命名。 标识符:区分大小写。,Java程序结构,40,使用类库以便引用其他类。 类定义:定义程序所需的类及接口,包括其内部的变量、方法等。 main方法:应用程序的入口,与标准C中main()函数的地位是一样的。一个应用程序有且只有一个main(),main()必须包含在一个类中。 程序注释:与C类似,/* /,41,第二个Java应用程序 (命令行参数),public class CommArg public static void main(String args) / Display command arguments int i; if( args.length 0 ) /have some command arguments for( i=0; iargs.length; i+ ) System.out.println(“arg“+i+“ = “+argsi); else /no command arguments System.out.println(“No arguments!“); ,42,命令行参数: main( String args ),与标准C中main(int argc, char* argv) 相似。 字符串的拼接: “arg“ + i + “ = “ + argsi。 运行程序(命令行参数获取): java CommArg first second third 运行结果: arg0 = first arg1 = second arg2 = third 使用eclipse存盘后就自动编译。 其他例子:myclass.java,43,5.2 Java applet,Applet小应用程序 运行于支持Java的Web浏览器中 浏览器的解释器把字节码转换成和机器匹配的指令,在网页中执行小程序。 Applet和Application的差别:运行环境的不同,小应用程序总是放在Web浏览器的图形用户界面中。,44,Applet的优点 Web 浏览器软件包括很多小应用程序运行所需的功能 Applet的局限性 在客户端主机的文件系统中读/写受限 不能运行客户端主机的任何程序 仅能在服务器和客户端之间建立联系,45,5.3 Servle

温馨提示

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

评论

0/150

提交评论