1 / 67

程序设计语言 Java

程序设计语言 Java. 第 2 章 Java 概述和人门程序. 教学目标. Java 语言历史、发展和特点 Java 类库 Java 开发环境 JDK 下载、安装与使用 Java 集成开发环境 Java 程序类型及简单例子 应用程序 小应用程序 applet . 2.1 Java 历史及发展. 1991 年由 James Gosling 负责开发的一个分布式代码系统( Oak ),最初是为家用消费电子产品(电冰箱、电视机等)进行编程控制 。

Télécharger la présentation

程序设计语言 Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 程序设计语言Java

  2. 第2章 Java概述和人门程序

  3. 教学目标 • Java语言历史、发展和特点 • Java类库 • Java开发环境 • JDK 下载、安装与使用 • Java集成开发环境 • Java程序类型及简单例子 • 应用程序 • 小应用程序applet

  4. 2.1 Java历史及发展 • 1991年由James Gosling负责开发的一个分布式代码系统(Oak),最初是为家用消费电子产品(电冰箱、电视机等)进行编程控制 。 • 1993年Sun 公司将目标市场转向 Internet 。1994年将Oak语言更名为Java。 • 1995年Java被正式发布,之后立即引起极大的轰动。

  5. 2.1 Java历史及发展 • 现在Java用于: • 开发大型企业的应用程序; • 增强WWW服务器的功能; • 动画游戏的设计,包括图形图像的调用; • 为消费类设备(如手机、传呼机和移动设备等)提供应用程序。

  6. 2.2 Java语言特点 • Java语言特点: • 简单性、 • 面向对象、 • 平台无关、可移植、解释型、高性能、动态性、 • 可靠、安全、 • 多线程、 • 分布式处理等。

  7. Java语言特点 • 系统精简,但功能齐备。 • 风格类似于C++,对C++程序员而言非常容易掌握。 • Java摒弃了C++中容易引发程序错误的地方,如指针操作和内存管理; • 提供丰富的类库。 1. 简单性

  8. Java语言特点 完全是面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。 2.面向对象 Java语言是纯面向对象的语言, • 程序的结构:由一个以上的类组成。

  9. JVM 计算机硬件环境 Java语言特点 3.平台无关性 • 用Java写的应用程序不用修改就可在不同的软硬件平台上运行。 • Java靠Java虚拟机(Java Virtual Machine,JVM)实现平台无关性。JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚拟机的机器指令,并有自己的栈、寄存器组等。

  10. Byte Code JVM 计算机硬件环境 Java语言特点 • 在JVM上,有一个Java解释器用来解释Java编译器编译后的程序。 Java编程人员在编写完软件后,通过Java编译器将Java源程序编译为JVM的字节代码(Byte Code)。任何一台机器只要配备了Java解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。 通过JVM以及JRE将其转成本地机器代码,

  11. Java程序运行环境 编译时 运行时 . Java源程序 Bytecode加载器 (.java文件) 网络 字节码校验器 JIT代码 生成器 解释器 Java Bytecode . (.class文件) 硬件 JIT (Just In Time)

  12. Java与传统语言的不同运行机制

  13. Java语言特点 Java应用程序可以在配备了Java解释器和运行环境的任何计算机系统上运行,而与体系结构无关。 • 4.可移植性 • 5.解释性 • 6.高性能 7.动态性 Java编译器将java源文件生成类文件.class,类文件可通过java命令解释执行,将Java字节码转换为机器码。 JIT编译器。可以提高 Java 代码的执行速度。 允许程序动态地装入运行过程中所需要的类。

  14. Java语言特点 • Java语言提供的安全。 • 编译器提供的安全。 • 字节码校验。 • 类装载。 8.可靠性和安全性 • Java是强类型语言; • Java不支持指针,这杜绝了内存的非法访问; • Java的自动单元收集防止了内存丢失等动态内存分配导致的问题; • Java解释器运行时实施检查,可以发现数组和字符串访问的越界; • Java提供了异常处理机制,使程序从错误状态中恢复。 • 当Java字节码进入解释器时,首先必须经过字节码校验器的检查,随后,类装载器负责把来自网络的类装载到单独的内存区域,避免应用程序之间相互干扰破坏。 • 最后,客户端用户还可以限制从网络上装载的类只能访问某些文件系统。

  15. Java语言特点 内置多线程功能,使得在一个程序里可同时执行多个小任务。带来的好处是更好的交互性和实时控制性。 9.多线程 Java提供现成的类Thread,只要继承这个类就可以编写多线程的程序。 多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。 通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。

  16. Java语言特点 支持TCP/IP协议。 10.分布式处理 • 分布式包括: • 数据分布:指数据可以分散在网络的不同主机上, • 操作分布:指把一个计算分散在不同主机上处理。 • Java支持WWW客户机/服务器计算模式,因此,它支持这两种分布性。 • Java数据分布: Java提供了一个叫作URL的对象,利用这个对象,你可以打开并访问具有相同URL地址上的对象,访问方式与访问本地文件系统相同。 • Java操作分布: Java的applet小程序可以从服务器下载到客户端,即部分计算在客户端进行,提高系统执行效率。

  17. 2.3 Java 类库 • Java类库也称作Java API (Application Programming Interface)。 在学习Java时,实际上学习内容分成两部分。 • 第一部分是Java语言本身,以便编写自己的类; • 第二部分学会扩展Java类库的类。 本书通过例子讨论了Java的大量类库的使用。

  18. 2.3 Java 类库 • Java中的包: • Java为编写应用程序提供了丰富的预定义类库,这些预定义类库按相关类的范畴进行了分组,这些分组被称作包(package). • 一个包是一个已命名的类的集合,一个包还可以包含其他的子包。Java所有的包被称为Java应用程序接口API。Java API包分成: • 核心包(以java开头的包) • 和可选包(以javax开头的包) 核心包和可选包一般被包含Java开发工具包中。

  19. 2.3 Java 类库 JDK中的一些重要的包: • java.lang: 提供支持Java的基础类。 • java.util: 提供实用方法和数据结构的类。 • java.awt : • javax.swing: • java.applet: 创建小应用程序提供必要的元件 • java.io : 提供输入、输出流支持。 • java.net: 提供支持联网的类。 提供图形用户界面编程的类库集合。

  20. 2.4 Java开发环境 • Java开发环境: • 使用JDK工具集(Java Developers Kits,JDK),是一种命令行的方式。 • 使用集成环境IDE(Integrated Developed Environment)。 • 我们将通过程序例子分别介绍它们的使用方法。

  21. JDK 下载、安装与使用 • JDK可从 java.sun.com 网站免费下载,在这里下载适合于我们计算机操作系统的JDK。 如Window操作系统下, 我们下载JDK的开发工具“jdk-6u5-windows-i586-p.exe” 和JDK的开发文档“jdk-6-doc.zip”(帮助文档)。 • Window操作系统下安装时,直接运行 “jdk-6u5-windows-i586-p.exe”, 按照安装向导进行安装。 • 解开“jdk-6-doc.zip”,得到JDK的开发文档。

  22. JDK 安装与使用 • 安装JDK后产生主要的目录结构如下: • \bin目录:Java开发工具,包括Java编译器、解释器、applet解释器等 • \demo目录:一些实例程序 • \lib目录:Java开发类库 • \jre目录: Java运行环境,包括Java虚拟机、运行类库等

  23. JDK 安装与使用 • Java开发工具包括的文件有: ljavac:Java编译器,用来将java程序编译成Bytecode。 ljava: Java解释器,执行已经转换成Bytecode的java 应用程序。 ljdb: Java调试器, 用来调试java程序。 ljavap:反编译,将类文件还原回方法和变量。 ljavadoc:文档生成器,创建HTML文件。 lappletviwer:applet解释器, 用来解释已经转换成Bytecode的Java小应用程序。

  24. JDK 安装与使用 • 安装完JDK后,必须设置环境变量PATH和CLASSPATH。 • PATH环境变量指定Java工具的路经, • CLASSPATH环境变量是指定类的路经。 假如:JDK安装在目录: C:\Program Files\Java\jdk1.6.0_05\bin, 用户的Java类文件放在目录下: D:\javaExamples, 则环境变量设置如下: PATH= …;C:\Program Files\Java\jdk1.6.0_05\bin;CLASSPATH= D:\javaExamples

  25. Java集成开发环境 • Java开发领域的集成开发环境IDE: JCreator、 Eclipse、 JBuilder、 Visual J++、 NetBean等。 具体选用哪种开发工具要视项目的具体情况而定。对于初学者而言,集成开发环境的界面不能太复杂。适合于初学者学习的,应该是界面简单一些,最好是不需要对开发环境做很多的设置的软件。

  26. JCreator的介绍 • JCreator。它为用户提供了相当强大的功能,例如项目管理功能,可个性化设置语法高亮属性、行数、类浏览器、标签文档、多功能编绎器,向导功能以及完全可自定义的用户界面。 • 通过JCreator,你不用激活主文档而直接编绎或运行你的Java程序。JCreator能自动找到包含主函数的文件或包含applet的Html文件,然后它会运行适当的工具。 • JCreator的设计接近Windows界面风格,用户对它的界面比较熟悉。其最大特点是与你机器中所装的JDK完美结合,是其它任何一款IDE所不能比拟的。

  27. JCreator的安装 • JCreator的下载地址: http://www.jcreator.com/Download.htm • 安装JCreator前,必须机器上预先安装好JDK。 • 安装JCreator时,运行setup.exe文件并按照提示输入参数。安装完毕后,在Window程序组产生程序项JCreator PRO。运行JCreator PRO,JCreator显示界面如图2-2所示。 在下一节中,将通过程序例子介绍JDK和JCreator的使用方法。

  28. JCreator显示界面

  29. 2.5 Java程序类型及简单例子 • Java程序有四种基本类型: • 应用程序(application)、 • 小应用程序(applet)、 • Servlet • bean。 这四种类型程序的区别很少,Java的每一个程序都至少有一个类,并且Java语言的的基本编程结构对于所有类型的程序都适用。且每一种类型的程序,都要运行在Java虚拟机JVM上。

  30. 应用程序(applications) • 应用程序(applications)是一个可以独立运行的程序,它只需要Java虚拟机就能够运行。 • 一个Java application中,一定要有一个类包含main方法。

  31. 例2-1 第一个Java application: 定义类的关键字 文档注释, 类名 // FirstApp.java public class FirstApp { public static void main(String args[ ]) { System.out.println("This is the first Java Application!"); } } 必须这么写 程序运行输出结果: This is the first Java Application!

  32. 例2-1 第一个Java application的说明 (1) 注释行。Java中注释有Java有二种注释形式: // 一行的注释 /* 一行或多行的注释 */ (2) 关键字class来声明一个新的类,类名为FirstApp,。类定义由大括号{}括起来,类中封装了类的变量(域)和类的方法。一个Java应用程序由n(n>0)个类组成,但这n个类中只能有一个是public类(公共类),且程序名必须与公共类名相同,这是本应用程序文件起名为FirstApp.java的原因。Java解释器要求公共类必须放在与其同名的源文件中。 (3) static void main(String args[ ]) 该类中定义了一个main方法,是应用程序执行的入口点。main方法所在的类叫做主类,一个应用程序的主类只能有一个。

  33. 例2-1 第一个Java application的说明 main方法署名中的符号解释如下: public:指明为公共方法。public方法可以被类的对象使用。 static:指明方法是一个静态方法,静态方法是类的方法,而不是对象的方法,静态方法可以通过类名直接调用。 void:表示main方法执行后不会返回任何值。 括号中的String args[]是定义传递给main方法的参数,参数名为args,为String 类的数组。

  34. 例2-1 第一个Java application的说明 (5) System.out.println("This is my first Java Application!"); System.out.println是在命令窗口上输出(或打印)一行文本。 System.out.print是在命令窗口上输出(或打印)文本后,但并不换行。

  35. 程序的执行分三步:编写、编译和运行。 (5) 该程序的执行用JDK完成。程序的执行分三步:编写、编译和运行。具体步骤如下: 第一步:利用文本编辑工具,编写生成Java源程序,命名为FirstApp.java 第二步:编译。调用Java编译器javac.exe,将源文件FirstApp.java编译生成类FirstApp.class。 假定FirstApp.java放在D:\javaExamples目录下。 d: //改变盘符 cd javaExamples //改变当前路径 javac FirstApp.java//编译

  36. 第一个Java application程序的执行.分三步:编写、编译和运行。 第三步:运行。调用Java解释器java.exe对类文件FirstApp.class解释执行,输出程序的执行结果。 在MS-DOS命令行提示符“D:\javaExamples>”下,输入下列命令执行: java FirstApp

  37. 例2-2用格式化方法printf输出文本,并使用JCreator编写程序、编译和运行。例2-2用格式化方法printf输出文本,并使用JCreator编写程序、编译和运行。 • 在例2-2中, 使用的Java的类JOptionPane包含在javax.swing包中, JOptionPane类提供了利用对话框进行输入和输出的方法。

  38. 例2-2 第二个Java application:在对话框中显示文本 Second.java文件的代码如下: // Display text with printf public class Second{ public static void main( String args[] ) { System.out.printf("You %s\n%s\n", "print","Two lines" ); } }

  39. 第二个Java application的说明 (4) 用JCreator完成该程序的执行。 分三步:进行程序书写、编译和运行。具体步骤如下: 第一步:利用JCreator,编写生成Java源程序,命名为Second.java. 第二步:程序编译。编译器将源文件Second.java编译生成类Second.class放在D:\javaExamples目录下. 第三步:程序运行。对类文件Second.class解释执行,并输出结果。

  40. 例2-5: 要求用户从键盘输入二个整数,计算这两个整数之和,并显示结果. (1)Scnanner 类在包java.util中。使用时必须导入 import java.util.Scanner; (2)创建标准输入流对象,并赋给引用变量input Scanner input=new Scanner(System.in); (3)通过引用变量input调用Scanner对象的方法nextInt(),完成接受从键盘输入的一个整型数。 firstNumber =input.nextInt();

  41. 读入两个数,送给整型变量 //Addition.java import java.util.Scanner; public class Addition { public static void main( String args[] ) { Scanner input=new Scanner(System.in); //声明三个整型变量 int firstNumber; int secondNumber; int sum; // read in first number System.out.print( "输入第一个数: " ); firstNumber=input.nextInt(); // read in second number System.out.print( "输入第二个数: "); secondNumber = input.nextInt(); // substract numbers sum = firstNumber+ secondNumber; System.out.printf( "相加后的结果是: %d\n",sum); } } 定义三个整型变量 两数相加 显示结果

  42. 第三个Java application的执行结果

  43. 小应用程序applet Java小应用程序(applet)是一种嵌入在HTML文档(即Web页)中的Java程序。当浏览器装入一个含有applet的Web页时,applet被下载到该浏览器中,并开始执行。执行applet的浏览器一般称为applet容器。

  44. 小应用程序applet的下载执行过程

  45. 小应用程序applet • Java 2软件开发工具包含有appletviewer.exe,它是一个applet容器,一般用于对嵌入Web页的 applet进行测试。 • 在JCreator集成环境中,会调用appletviewer容器,运行含有applet的HTML文档。

  46. 例2-4 第一个Java applet:绘制字符串 • 第一个applet的功能是在applet显示区域上绘制字符串“欢迎进入 applet 程序设计”。 • 文件名为WelcomeApplet.java,经过编译后将生成WelcomeApplet.class。 • 由于Java小应用程序是不能直接运行的,必须嵌入到网页中,要使用applet容器才能够运行。因此我们将小应用程序WelcomeApplet.class嵌入在HTML文件WelcomeApplet.html中。

  47. 小应用程序WelcomeApplet.java的代码如下: import java.awt.Graphics; // 导入类 Graphics import javax.swing.JApplet; // 导入类 JApplet public class WelcomeApplet extends JApplet { // draw text on applet background public void paint( Graphics g ) { super.paint( g ); g.drawString( "欢迎进入 applet 程序设计", 25, 25 ); } } 调用基类方法 paint,刷新 applet显示区域 调用基类方法 paint,刷新 applet显示区域

  48. HTML文档文件WelcomeApplet.html的代码如下: <html> <applet code = "WelcomeApplet.class" width = "300" height = "45"> </applet> </html>

  49. 使用支持Java的微软的Internet Explorer浏览器和小应用程序查看器AppletViewer这两个applet容器,来执行WelcomeApplet.html的显示结果:

  50. 例2-4 第一个Java applet的说明 (1)import java.awt.Graphics; 导入javax.swing包中的Graphics类。 Graphics类使Java applet能绘制各种图形如直线、矩形、椭园以及字符串等。 (2)import javax.swing.JApplet; 导入javax.swing包中的JApplet类。 (3) public class WelcomeApplet extends JApplet 是applet类的声明。 定义了一个applet类名为 WelcomeApplet,关键字extends表示继承,即表示WelcomeApplet是超类JApplet的子类,它拥有JApplet类的所有属性和方法,并且在WelcomeApplet类可以重写这些方法并扩展新的功能。

More Related