1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,陈立岩,hdjava2008,面向对象程序设计,Java,教学目的与要求,:,掌握,Java,语言的语法规则及其面向对象编程思想及方法。,灵活运用,Java,语言完成应用程序设计,必须熟悉,Java,语言类库中的类。,为,J2EE,技术打下良好的基础,为后续的专业课程奠定基于网络的程序设计基础。,参考教材,Java,技术及其应用(第二版)王克宏等编著 高等教育出版社,Java,大学实用教程 耿祥义编著 电子工业出版社,Java,语言程序设计 吕凤翥等编著 清华大学出版社,第,1,章,Java,语言概述,J
2、2SE,之,JAVA,概述,-,为,J2ME,、,JSP/,Servlet,、,J2EE,打好基础,1.1,Java,发展,史与,Java,体系,1.,2 Java,的特点,1.3 Java,核心的运行机制,1.4 Java,运行环境与配置,1.,5 Java,程序举例,第,1,章,Java,概述,1.1,Java,发展,史与,Java,体系,1.,2 Java,的特点,1.3 Java,核心的运行机制,1.4 Java,运行环境与配置,1.,5 Java,程序举例,第,1,章,Java,概述,1,.1 Java,发展史与,Java,体系,1991,年,,Sun,公司的,James Gosli
3、ng,领导开发一个叫,Green,的项目,为家用消费电子产品开发一个分布式代码系统,基于,C+,开发了一种新的语言叫做,Oak,(,Java,的前身),结果项目没有取得成功。他们用,Java,编制了,HotJava,浏览器,得到了,Sun,公司首席执行官,Scott McNealy,的支持,触发了,Java,进军,Internet,。,1995,年,,Sun,公司将,Oak,改造成面向网络的编程语言,并正式取名为,Java,,,Java,语言的出现为,Internet,开辟一个新时代。,可以说,,Java,语言源于,c+,语言,又与,Internet,同步发展。,Java,的各种版本简介,95
4、年,,sun,发布,JDK1.0,;,1998,年,,JDK1.2,,更名为,Java 2,。,之后,相继发布了,JDK1.3,、,JDK1.4,和,JDK1.5,(更名为,java 5.0,);,目前,,Java6.0(,即,JDK1.6),。,j2se,j2ee,j2me,Java,的三种应用版本:,Java SE,(,Java,Platform,Standard,Edtion,),由于,Java,的跨平台优势,许多桌面应用软件的开发已经用,java,来开发。(本书基于此版本),Java,EE(Java,Platform,Enterprise,Edtion,),可以构建企业级的开发应用。
5、Java,ME(Java,Platform,Micro,Edtion,),用于嵌入式的消费产品中,如手机、掌上电脑、数字电视机顶盒、冰箱、洗衣机等。,1.1,Java,发展,史与,Java,体系,1.,2 Java,的特点,1.3 Java,核心的运行机制,1.4 Java,运行环境与配置,1.,5 Java,程序举例,第,1,章,Java,概述,1.1,Java,发展,史与,Java,体系,1.,2 Java,的特点,1.3 Java,核心的运行机制,1.4 Java,运行环境与配置,1.,5 Java,程序举例,第,1,章,Java,概述,1.2 Java,语言的特点,一种面向对象的语言
6、与平台无关性,提供程序运行的解释环境,一种健壮的语言,吸收了,C/C+,语言的优点,去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)。,其它特点:,简单性,分布性,鲁棒性,可移植性,解释执行,高性能,多线程,动态性,简单性,Java,的风格类似于,C+,,因而,C+,程序员初次接触,Java,语言,就会感到很熟悉。从某种意义上讲,,Java,语言是,C,及,C+,语言的一个变种,因此,,C+,程序员可以很快地掌握,Java,编程技术。,Java,摒弃了,C+,中容易引发程序错误的一些特性,如指针、结构、枚举以及内存管理等。,Java,提供了丰富的类库,可以帮助我们很方便的开发,J
7、ava,程序。,Java,语言的特点,分布性,通过,Java,提供的类库可以方便地处理,TCP/IP,协议,用户的应用程序可以通过,URL,地址访问网络上的其他对象,就象访问本地文件一样简单.,Java,语言的特点,鲁棒性,Java,致力于检查程序在编译和运行时的错误。,Java,也是一种强类型的语言,其类型检查比,C+,还要严格。类型检查帮助我们检查出许多开发早期出现的错误。,Java,自己负责内存管理,提供了垃圾内存回收机制,有效的避免了,C+,中最头疼的内存泄漏问题。,Java,语言的特点,与平台无关性,Java,是一种网络语言,为使,Java,程序能在网络上任何地方运行,,J,ava,
8、源程序被编译成与机器无关的字节码文件格式,只须提供相应的,Java,运行系统(,JVM,),,便能在任何种类的处理器上运行。,Java,语言的特点,解释执行,Java,代码是解释执行的,我们使用,Java,编译器将,Java,代码编译成字节码,这是一种中间代码,然后由,Java,解释器解释执行。而,C+,程序是编译执行的,,C+,程序代码被,编译为本地机器指令,然后执行。,Java,语言的特点,可移植性,体系结构中立使,Java,具有可移植性。,高性能,尽管,Java,是解释执行的,但它具有非常高的性能。,Java,语言的特点,多线程,Java,语言的一个重要特性就是在语言级支持多线程的程序设
9、计。多线程就好像我们做一张桌子,如果你一个人完成这张桌子,就好像单线程,那么你需要先做桌面,做完桌面后,再做,4,个桌子腿,如果现在有,5,个人来做桌子,在程序中开辟,5,个线程,其中,1,个人做桌面,另外,4,个人分别做,4,个桌子腿,那么这两种方式效率的高低,相信大家都能区分出来。,Java,语言的特点,动态性,在类库中可以自由地加入新的方法或实例,而不会影响使用这一类库的应用程序的执行。,1.1,Java,发展,史与,Java,体系,1.,2 Java,的特点,1.3 Java,核心的运行机制,1.4 Java,运行环境与配置,1.,5 Java,程序举例,第,1,章,Java,概述,1
10、1,Java,发展,史与,Java,体系,1.,2 Java,的特点,1.3 Java,核心的运行机制,1.4 Java,运行环境与配置,1.,5 Java,程序举例,第,1,章,Java,概述,1.3 Java,程序的运行机制,Java,的两种核心机制,Java,虚拟机(,Java Virtual Machine,),垃圾收集机制(,Garbage Collection,),核心机制,-Java,虚拟机,虚拟机,(Java Virtual,Machine,JVM,),虚拟机可以理解为一个以字节码为机器指令的,CPU,。,Java,虚拟机,操作系统,硬件,-,-,-,源文件(*,.java,
11、Java,编译器,字节码(*,.class,文件),解释执行,对于不同的运行平台,有不同的虚拟机,比如:,Unix,、,Windows,等都有相应的,Java,虚拟机。,Java,虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,处处可用”。,-,-,-,*,.java,*,.class,编译,执行,UNIX,JVM for UNIX,Windows,JVM for Windows,Other Platform,JVM for Other,核心机制,垃圾收集,在,C/C+,等语言中,由程序员负责回收无用内存。,Java,语言中,垃圾收集在,Java,程序运行过程中自动进行,程序员无法精
12、确控制和干预。,1.1,Java,发展,史与,Java,体系,1.,2 Java,的特点,1.3 Java,核心的运行机制,1.4 Java,运行环境与配置,1.,5 Java,程序举例,第,1,章,Java,概述,1.1,Java,发展,史与,Java,体系,1.,2 Java,的特点,1.3 Java,核心的运行机制,1.4 Java,运行环境与配置,1.,5 Java,程序举例,第,1,章,Java,概述,1.JDK,的下载、安装、设置,(,1,)下载、安装,JDK,(,Java Development Kit,),登陆,sun,公司的网站,可免费下载,SDK1.6,。,(,2,)仅仅安
13、装,JRE,(用户使用),JRE,(,Java Runtime Environment,),即,Java,运行环境,通常已包含在,J2SDK,中了。如果我们仅仅是为了运行,Java,程序,而不是从事,Java,开发,我们可以直接下载,JRE,,在我们的系统上安装。,Java,开发工具,(,3,)系统环境设置,设置,path,SDK,平台提供的,Java,编译器(,javac.exe,)和,Java,解释器(,java.exe,)位于,Java,安装目录的,bin,文件夹中,为了能够在任何目录中使用编译器和解释器,应在系统特性中设置,path,。,Java,开发工具,设置,path,的方法:右键
14、单击“我的电脑”,在弹出的快捷菜单中选择“属性”,在弹出的对话框中选“高级”选项卡,然后单击按钮“环境变量”,新建或编辑系统变量,名为:,path,,变量值为指向,jdk,安装目录下的,bin,子目录路径。,设置,classpath,设置,classpath,的方法(与设置,path,的过程相同):最后,添加变量名:,classpath,,变量值:,.;d:lesson1 /,设置将访问的类的路径,Java,开发工具,1.4 Java,的运行环境与配置,2.,常见,Java,开发环境,编辑器,EditPlus,UltraEdit,简单开发工具,Jcreator(www.J,免费下载,),集成开
15、发环境(,IDE,),JBuilder(,),Eclipse(,www.eclipse.org,),NetBean(,,),WSAD(,,),1.1,Java,发展,史与,Java,体系,1.,2 Java,的特点,1.3 Java,核心的运行机制,1.4 Java,运行环境与配置,1.,5 Java,程序举例,第,1,章,Java,概述,1.1,Java,发展,史与,Java,体系,1.,2 Java,的特点,1.3 Java,核心的运行机制,1.4 Java,运行环境与配置,1.,5 Java,程序举例,第,1,章,Java,概述,1,.5 Java,程序举例,Java,程序分两种:,Ja
16、va,应用程序,(Java Application),:按标准的应用程序形式编写的,能够在安装了,Java,标准平台的任何计算机上运行。,特点:至少由一个类组成,仅有一个类中包含一个,main(),方法。,Java Applet(,小应用程序,):,可以在支持,Java,的浏览器中运行,不需要安装,Java,的标准平台。可以不包含,main(),方法。,1,.5 Java,程序举例,1.5.1 Java,应用程序(,Java Application),1.,源程序的组成,例1.1,public class,HelloWorld,/an application,public static voi
17、d main(String,args,),System.out.println(Hello,World!);,程序实现了一个功能,即输出一行信息:,Hello World!,1,.5 Java,程序举例,1.5.1 Java,应用程序(,Java Application),2.,程序分析,Java,源文件以“,java”,为扩展名。源文件的基本组成部分是类,如例。,一个源文件中最多只能有一个,public,类。其它类的个数不限,如果源文件中包含一个,public,类,则文件名必须按该类名命名。,Java,应用程序的执行入口是,main(),方法。它有固定的书写格式:,public static
18、 void,main(String,args,),注释,“/”表示注释其后的一行信息,“/*,*/”,表示注释多行信息,“/*/,”表示注释多行信息,并能自动生成注释文档,1,.5 Java,程序举例,1.5.1 Java,应用程序(,Java Application),3.Java,应用程序的实现,(1),编辑,Java,源程序,使用文本编辑器(如,EditPlus,或记事本)来编写源程序,不可使用,Word,编辑器,因为它含有不可见字符。本例文件名为:,HelloWorld.java,。,(,2,)编译,Java,源程序,编译命令:,javac,HelloWorld.java,注,:编译生
19、成字节码文件:,HelloWorld.class,,如果,Java,源程序中包含多个类,编译完将生成多个字节码文件,每个,.class,文件存放一个类的字节码文件。,1,.5 Java,程序举例,1.5.1 Java,应用程序(,Java Application),(,3,)运行,Java,应用程序,运行命令:,Java,HelloWorld,在屏幕上显示:,Hello World!,1,.5 Java,程序举例,1.5.2 Java,小应用程序(,Java Applet),1.,源程序的组成,例1.2,import,java.awt.Graphics,;,import,java.applet
20、Applet,;,public class,HelloWorldAppl,extends Applet,public String s;,public void init(),s=new String(Hello World);,public void paint(Graphics g),g.drawString(s,25,25);,1,.5 Java,程序举例,1.5.2 Java,小应用程序(,Java Applet),程序分析,(1)类定义,一个,Java Applet,源程序也是由若干个类组成,其中有且只有一个类必须是,Applet,类的子类,我们把这个类称为,Java Applet
21、源文件的,主类,。,(2)方法定义,在,Java Applet,中没有,main(),方法,这是,Java Applet,与,Java,应用程序之间的主要区别之一。,Applet,类中实现了许多方法,构造了一个窗口的主要框架,我们只需要重写所需的方法,系统将对其自动调用。,(3)类库支持,这个程序中用到了类库中的一些方法,因此用语句,import,将需要的类引入,本例中在开头引入了,java.awt.Graphics,和,java.applet.Applet,类。,1,.5 Java,程序举例,1.5.2 Java,小应用程序(,Java Applet),2.Java,小应用程序的实现,(,
22、1,)编辑源程序:按照源文件的命名规定,,Java Applet,源文件的名字一定和主类的名字相同。,(,2,)编译,编译命令:,javac,HelloWorldAppl.java,(,3,)运行,与,Java,应用程序不同的是,,Java Applet,中没有,main(),方法作为程序的入口,不能用上面的方法运行。必须编写,HTML,文件,把,Java Applet,嵌入其中,然后用,appletviewer,来运行,或在支持,Java,的浏览器上运行。,1,.5 Java,程序举例,1.5.2 Java,小应用程序(,Java Applet),HTML,文件,helloworld.htm
23、l,如下:,在,DOS,命令行执行:,appletviewer,helloworld.html,1,.5 Java,程序举例,1.5.3 Java,程序结构,1 命名,如,Java,文件包含一个,public,类,他必须按该类名命名,。,2 类个数,一个源文件中最多只能有一个,public,类,其他类的个数不限。,3 结构,package,语句:/0或1个,必须放在文件开始,import,语句:/0或多个,必须放在所有类定义之前,public,classDefinition,:/0,或1个,/文件名必须与该类的类名完全相同,classDefinition,:/0,或多个,interfaceDefinition,:/0,或多个,总结,构建,Java,运行环境,掌握,path,和,classpath,熟悉,java,程序简单规则,熟悉,java,程序的编译和运行,






