单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,1,讲,Java,入门,1.1,Java,语言发展和特点,1.2,面向对象程序设计,1.3,Java,程序举例,1.4,Java,程序开发工具与开发方法,1.1,Java,语言发展和特点,1.1.1,Java,语言的发展,1990,年,美国,Sun,公司的,James Gosling,、,Bill Joe,等人,为在电视、控制烤箱等家用消费类电子产品上进行交互式操作而开发了一种与平台无关、可靠性强、小而灵活的编程语言,但当时并没有引起人们的注意。直到,1994,年下半年,,Internet,的迅猛发展,,WWW,的快速增长,人们发现,Java,这种中性平台及可靠性强的语言恰恰就是互联网在等待的语言。,Java,的开发人员基于网络对,Java,进行了一系列的改进,融合了,C,和,C+,等语言的优点,形成了现在这套与众不同的面向对象的通用程序设计语言。,Java,的原名叫,Oak,(橡树),但在申请注册商标时,发现,Oak,已经有人用了。在想了一系列名字后,最终,使用了提议者在喝一杯,Java,咖啡时无意提到的,Java,。,Java,(,JDK 1.0,)正式发表于,1995,年,5,月。,Java,的“,Write,Once,Run,Anywhere,(一次编写,到处运行)”口号使得,Java,一出现就引起广泛的注意,用,Java,开发的软件可以不用修改或重新编译而直接应用于多种不同平台的计算机上。,Java,语言的众多优点使得它逐渐成为,Internet,上受欢迎的开发与编程语言。,Java,的诞生对传统的计算模型提出了新的挑战。,目前,针对不同领域的软件开发,,Java,有三个平台可供选择:,Java SE,:,Java,标准版,可用于开发桌面应用和一般的网络应用。,Java EE,:,Java,企业版,可用于开发一般和复杂的分布式的综合网络应用。,Java ME,:,Java,微型版。可用于开发可用资源较少的个人数字助理、手机等终端设备上的应用。,几个常识区别,Javascript,运行在客户端的脚本程序,和,java,没有任何关系,不属于,java,的范畴。语法极为灵活,因此,javascript,极为强大,可以毫不夸张的说:只用,html+javascript+xml,就可作出,和,jsp,等才能实现的动态网站。这也是就是现在的,ajax,。,servlet,:,纯,java,的程序,只不过是运行在服务器端,需要编译为,.class,文件,而动态网站的后台逻辑层就是靠,servlet,实现的。,jsp,:,运行在服务器端的动态网页编辑语言,由标记和自定义的标记库组成。,jsp,是你要实现动态网站所亲手写的代码,,jsp,会被完全编译为,servlet,,真正在服务器后台运作的是,servlet,。,j2ee,:,java,的三大平台之一,即:,j2ME,,,j2SE,,,j2EE,,,j2EE,包括,web service,,,jsf,,,servlet,,,jsp,,,rcp,,,EJB,,,javaBean,等。,1.1.2,Java,语言的特点,Java,最大限度地利用了网络。一种称为,Java,小程序(,Applet),的,Java,程序是动态、安全、跨平台的网络应用程序,可在网络上运行而不受,CPU,和环境的限制。,作为一种程序设计语言,它简单、面向对象、分布式、解释执行、不依赖于机器的结构、具有可移植性、鲁棒性、安全性、并且是多线程的、动态的,具有很高的性能。,Java,是一个迅速发展的,网络编程语言,,它是一种新的计算概念。,系统的健壮性,1.1.3,Java,程序的工作机制,Java,的解释器和运行时系统又称为“,Java,虚拟机(,JVM,,,Java Virtual Machine,)”,。,Java,虚拟机是在真实的机器中用软件模拟实现的一种虚拟机器。,JVM,运行的代码存储在,.class,文件中,每个文件包含最多一个,public,类的代码。,JVM,是独立于平台的。,编程人员首先编写好,源代码,,然后经编译生成一种二进制的中间码,称为,字节码,(,byte code,),,最后再通过运行与操作系统平台环境相应的一种称为,Java,解释,器的运行机构来执行编译生成的字节码。,1.2,面向对象程序设计,Java,语言是一种面向对象(,OO,,,Object Oriented,),的程序设计语言。无论是,Java,应用程序还是,Java,小程序,它们都是以,类,为基础构建的。,面向对象的概念构成了,Java,的核心。,一个对象就是数据和相关的方法的集合,其中,,数据,表明对象的,状态,,,方法,表明对象所具有的,行为,。,面向对象具有,封装,、,继承,、,多态,三个主要特性。,1.3,Java,程序举例,按照运行方式的不同,Java,程序,有,可,独立运行的,应用程序,和,需要,嵌套在网页中运行的,小程序,两种形式。,1.3.1,Java,应用程序举例,【例1.1】输出信息为,Hello,World,!,的,Java,应用程序。,代码,1,/,/Sample“Hello World”application,/,public class,TestGreeting,public static void,main(Stringargs,),Greeting hello=new Greeting();,hello.greet,();,代码,2,public class Greeting,public void greet(),System.out.println(“Hello,World”);,程序中,“/”,是注释信息,当然用,“/*”,和“*,/”,括起来的内容也是注释。,class,用来定义一个新的类,标识符,TestGreeting,为类名,它是一个公共类,(public),。,一个,Java,源程序中可以定义多个类,但是,最多只允许有一个公共类,。,程序文件名要求与这个公共类的类名相同,。,类定义由,括起来,其内部是类体。类体中可以定义类的,数据成员,和,成员方法,。,在本例中定义了一个,main,方法,其中,public,表示访问权限,,static,指明该方法是一个静态(或类)方法,,void,则指明该方法不返回值。,Java,应用程序,必须有,main,方法,,,必须按照如上的格式定义,。,Java,解释器在没有生成任何对象的情况下,以,main,方法作为入口来执行程序。,每个类中可以定义多个方法,但,main,方法只能有一个,,每个程序从这里开始执行。,String,args,是参数,参数名为,args,,它是,String,类的一个对象。,方法的参数用“类名 参数名”来指定,,多个参数间用逗号分隔。,在,main,方法中,产生了一个对象,hello,,通过该对象调用该对象的,greet,函数,函数中的语句:,System.out.println(Hello,World);,在标准输出设备(显示器)上输出一行字符:,Hello World,这里调用,java.lang,包中,System,类的功能,而,System.out,又是,java.io,包中,OutputStream,类的对象,,println,方法的作用是将圆括号内的字符串在屏幕输出并换行。,注意:默认包。,1.3.2 Java,小程序举例,【,例,1.2】,显示信息为,Hello World!,的,Java,小程序。,import,java.awt.Graphics,;,import,java.applet.Applet,;,public class,HelloApplet,extends Applet,public void,paint(Graphics,g),g.drawString(Hello,World!,20,20);,import,语句引入两个类。,Java,小程序都是,Applet,类,或,JApplet,类,的子类。,这里重写了,Applet,父类的,paint,方法,其中参数,g,为,Graphics,类的对象,可认为是用于绘图的画板。在,pain,方法中,调用对象,g,的方法,drawString,,在坐标,(20,20),处输出字符串“,Hello World!”,,其中坐标是用象素点来表示的。,这个小程序,没有,main,方法,这是小程序与应用程序,(,如例,1.1),的主要区别之一,。,1.3.3 Java,程序结构,1,、命名,若,Java,源文件中包含一个,public,类,它必须用该类的名称来命名源文件名,。例如,在例,1.1,中,包含一个,public,类型的,TestGreeting,类,所以程序文件名必须命名为,TestGreeting.java,。在例,1.2,中,包含一个,public,类型的,HelloApplet,类。所以程序文件名必须命名为,HelloApplet.java,。这时,,名字中的大小写也要一致,,否则编译器会指出错误。,2,、程序结构,一个可单独编译的程序模块(源文件)可以包含下面这些内容:,package,语句;,包语句,,0,或,1,个,必须放在文件开始位置,import,语句;,引入语句,,0,或多个,必须放在所有类和接口定义之前,接口(,interface,)和类(,class,)定义;,/1,个或多个,一个源文件中,最多只能有一个,public,类或接口,,其他类和接口的个数不限。,在书写源程序时,最好采用分层次的缩进方式书写,这有助于阅读理解程序,也为调试程序提供便利。,1.4,Java,程序开发工具与开发方法,常用的,Java,程序开发工具有:,美国,Sun,公司的,JDK,、,NetBeans,;,IBM,公司的,Eclipse,;,Borland,公司的,JBuilder,等。,JDK,是,Java,开发工具的核心,这是一个命令行版本,为方便开发,可使用,Java,开发的,IDE,(集成开发环境,例如:,NetBeans,、,Eclipse,、,JBuilder,等),但,IDE,通常需要,JDK,作支撑(单独安装,JDK,或自带,JDK,)。,下面介绍,JDK,的使用方法。,1.4.1 JDK,JDK,的意思是,Java Development kit,,即,Java,开发,工具包。,JDK,命令行方式的编程环境由一系列命令文件、类库字节码文件、动态连接库,DLL,文件组成,具体的命令文件包括:,javac.exe,、,java.exe,、,javah.exe,、,javap.exe,、,jdb.exe,、,javadoc.exe,、,appletviewer.exe,等。,JDK,和,JRE,JRE,是,java runtimeenvironment,的缩写,是,java,程序的运行环境。,简单的说,JDK,是面向开发人员使用的,SDK,,它提供了,Java,的开发环境和运行环境。而,JRE,是面向,Java,程序的使用者,而不是开发者,。,1,、,JDK,主要开发工具介绍,(1)appletviewer,小程序查看器,命令行格式如下:,appletviewer,选项,URL,如,:,appletviewer,Hello.html,URL,表示由,URL,描述的,HTML,文档,要指出文件的扩展名,如,html,。,(2)java,解释器,解释执行,Java,应用程序字节码,(.class),文件。命令格式如下:,java,选项,主类名,如:,java Hello,args,是运行这个主类时的参数。,(3)javac,编译器,读取,Java,程序源代码文件,将其编译成类文件(一组*,.class,文件)。,javac.exe,命令行中指定程序源文件时必须有文件扩展名,.java,。命令格式如下:,javac,选项,源文件名,.ja