1、2019年5月5日,第1章 Java基础知识,教学目标,Java是基于C和C+语法的纯面向对象的编程语言。本章首先向同学们介绍了Java语言的发展史、Java语言的特点、Java的基本元素以及什么是面向对象编程,使同学们对Java语言有个基本认识,然后介绍了如何建立Java开发环境并对JDK开发环境中的常用工具做了简要说明,最后,通过经典的HelloWorld程序讲述开发Java应用程序的基本流程。通过本章的学习,同学们将对Java语言有一个概括性的认识,理解什么是面向对象编程,并能在自己的机器上建立Java开发环境,编写简单的HelloWorld程序,教学重点,Java语言的特点 Java语
2、言的基本元素 面向对象编程 建立Java开发环境 JDK常用工具 编译并执行HelloWorld程序,Java语言简介,Java发展史 Java语言的特点 Java的基本元素,Java发展史,Java来自于Sun公司的一个叫Green的项目,其原先的目的是为家用消费电子产品开发一个分布式代码系统 1991年,Sun公司的Patrick Naughton 、Jame Gosling等人开发了一种新的语言Oak(Java的前身),Oak是一种用于网络的精巧而安全的语言,Sun公司曾依此投标一个交互式电视项目,但结果被SGI打败了。恰巧这时Mark Ardreesen开发的Mosaic和Netsca
3、pe启发了Oak项目组成员,他们用Java编制了HotJava浏览器,得到了Sun公司首席执行官Scott McNealy的支持,从而触发了Java进军Internet。,Java语言的特点,根据Sun公司的“Java白皮书”中对Java的定义,Java是一种简单、面象对象、分布式、解释性、健壮、安全、结构中立、可移植、高性能、多线程、动态的语言 当然Java也有一些不足之处。其中之一是它缺乏其他语言所具有的一些重要特征 ;另外,Java的运行速度相对较慢。当每次使用编译后的Java程序时,它是被一个实时(JIT)编译器解释或编译执行。因此Java应用程序的执行速度比本机语言(如C+)程序要慢
4、得多。,Java的基本元素,Java编程语言 Java运行时环境 Java应用编程接口(API),Java程序编译和执行过程,面向对象编程,面向过程与面向对象 客观事物的抽象 对象和封装 类和继承,面向过程与面向对象,面向过程的程序设计方法从解决问题的每一个步骤入手,适合解决比较小的简单问题,如Basic、C、Pascal等。当编写比较大的应用程序时,使用面向过程的编程方法设计就会变得很困难 面向对象的程序设计就是按照现实世界的特点来管理复杂的事物,把他们抽象为对象,具有自己的状态和行为,通过消息传递来完成一定的任务。 面向对象的程序设计主要有事物抽象、封装、继承和多态等特点,进而对应面向对象
5、的基本概念:对象(Object)、类(Class)、方法(Method)、实例(Instance)等,客观事物的抽象,在使用面向对象的编程语言设计对象时,使用属性来包含状态,用方法来实现对象的行为,对象和封装,对象就是把数据和相关的操作封装在一起而构成的实体。对象中的数据称为数据成员或属性,对象中的一些函数称为方法或成员函数。 封装是将相关的数据及其操作结合在一起,使得结构严谨,屏蔽交叉,使除了该对象的方法以外的其他方法不能使用这些数据、改变这些数据的状态。封装也称为消息隐藏。 封装允许对象进行完全独立的数据和代码。因此,每个对象可以看成一个“黑匣子”,消息从“黑匣子”的一端进入,从另一端出来
6、,类和继承,在类的创建过程中,新的类可以通过在原有类的基础上增加新的成员变量和成员方法来创建,这种创建方式称为继承。被继承的类称为父类(SuperClass),创建的新类称为子类(SubClass) 继承可以最大限度地重复使用代码,从而大大提高编码效率,建立Java开发环境,下载并安装JDK6 JDK6是Sun公司免费提供的Java开发工具包的最新版本。我们可以在Sun公司的主页上下载此开发工具 设置系统环境变量 安装好JDK6以后,还需要设置系统的环境变量PATH 新建系统变量 “JAVA_HOME”, 值为JDK的安装路径 新建系统变量 classpath,值为“.;%JAVA_HOME%
7、lib;%JAVA_HONE%libtools.jar”,JDK开发环境工具简介,Java编译器(javac.exe) Java解释器(java.exe) Applet浏览器(AppletViewer.exe) API文件产生器(javadoc.exe) 文件归档工具(jar.exe) 头文件生成器(javah.exe) 反汇编器(javap.exe) 密钥管理工具(Keytool.exe) 转码工具(native2ascii.exe),Java编译器(javac.exe),Java编译器本身是Java编写的一个应用程序,是由Sun公司的技术人员Arthur Van Hoff完成编写的。其作用
8、是将Java源代码(.java文件)转换成字节码(.class文件) Javac options file.java -classpath 例:C:src Javac classpath C:My Javalib;C:Home Welcome.java -d 例:C:src Javac d C:classes Welcome.java 其他选项均直接应用应用 例:C:src Javac g Welcome.java C:src Javac verbose Welcome.java,Java解释器(java.exe),Java options classname arguments -class
9、path 如何查找用户自定义的类文件的位置 -D 此选项允许用户在运行时改变属性值 -verify 使用校验 -help 打印本命令的使用帮助,Applet浏览器(AppletViewer.exe),使用appletviewer命令可以运行Java的小应用程序。Appletviewer读取包含小应用程序的HTML文件并在一个独立的窗口中运行,其命令行格式如下: appletviewer options htmlfilename,API文件产生器(javadoc.exe),Javadoc.exe程序用于读取一个Java类文件并自动创建一组HTML文件,这些HTML 文件描述了Java类文件的类、
10、变量、成员函数,所有Java类库的API文件都可以由此程序创建。Javadoc把软件包名或源文件列表当做一个变量。Javadoc依靠以打头的备注标记来创建HTML文件,表1-4给出了Javadoc识别的标注,它们被Javadoc用于在HTML 文件中创建链接。,文件归档工具(jar.exe),JAR文件就是Java Archive File,顾名思意,它的应用是与Java息息相关的,是Java的一种文档格式 jar ctxuivfm0Me jar-文件 manifest-文件 入口点 -C 目录 文件名 .,头文件生成器(javah.exe),javah.exe用于创建头文件和存根文件,这些是
11、把本地成员函数包入java所需要的。被创建的头文件给出了有关java类的信息,这些信息是成员函数与java类交换数据所必需的。存根文件将用来创建将定义java对象的结构与java对象本身数据相联系的文件。javah的命令行格式如下: javah options classname,反汇编器(javap.exe),javap命令用于反编译一个java字节代码文件, 返回有关可变部分和成员函数的信息,其命令行格式如下: javap options classname additionalClasses,密钥管理工具(Keytool.exe),Keytool是安全密钥与证书的管理工具,它管理一个存储
12、了私有钥匙和验证相应公共密钥的与它们相关联的X.509证书链的keystore(密钥库)。 Keystore有两个不同的入口: 密钥入口:保存了非常敏感的加密的密钥信息,并且用一种对称加密算法加密保存以防止未被授权的访问,以这种形式存储的密钥称为秘密密钥,或私有密钥。 信任证书入口:包含一个属于其他部分的单一公共密钥证书,它之所以被称为“信任证书”是因为keystore信任的证书中的公共密钥真正属于证书所有者的身份识别。,转码工具(native2ascii.exe),native2ascii.exe用于将文本类文件(如*.txt、*.ini、*.properties、*.java等)编码转为U
13、nicode编码。Unicode是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。随着计算机工作能力的增强,Unicode也在面世以来的十多年里得到了普及。 native2ascii的命令行格式如下: native2ascii -options inputfile outputfile,编译执行第一个Java程序,Java应用程序 Java Applet,Java应用程序,例程1-1 /Hello.java public class Hello / main method begins execution of
14、 Java applicationpublic static void main( String args )System.out.println( “Hello World!“ ); / end method main /end class Hello,Java应用程序,打开命令行窗口,进入Hello.java文件所在的目录,然后用下面命令编译程序: javac Hello.java 编译后,将在当前目录下生成一个字节码文件Hello.class,用下面的命令就可以运行这个Java应用程序了: java Hello,Java Applet,例程1-2 /HelloApplet.java im
15、port java.applet.*; import java.awt.*; public class HelloApplet extends Appletpublic void paint(Graphics g )g.drawString(“Hello World!“,10,50); /end class HelloApplet,Java Applet,Applet的编译过程跟编译Java应用程序相同,也是使用javac命令生成HelloApplet.class文件,但applet要运行在浏览器中,所以我们还需要创建一个HTML文件。然后可以直接用浏览器(IE或Netscape)或者使用appletviewer来运行这个HTML文件 Hello Applet,本 章 小 结,本章讲述了Java语言的发展史、Java语言的特点、Java的基本元素、面向对象编程思想,使读者对Java有了初步的认识;接着我们讲述了Java开发环境的创建,本书采用的是Sun公司网站上提供的最新版本JDK6 update3;最后介绍了JDK中的常用工具并在该环境下编译并执行了第一个Java程序HelloWorld。通过本章的学习,使读者对Java语言和面向对象编程有一个概括性的认识,激发读者进一步学习Java的兴趣。从下一章开始我们将学习Java语言的语法和编程技巧。,