Java语言程序设计教学参考书实践大师:JAVA2编程篇JAVA2Programmer’sInteractiveWorkbook电子工业出版社文字JAVA面向对象程序设计教程清华大学出版社Java语言导学机械工业出版社实验教学指导书《JAVA与面向对象程序设计实验指导与习题集》清华大学出版社教学安排上课:周三下午1~2节上机:周三下午3~4节(第二周开始上机C420、421)学习方法Nottostudy,Buttolearn.少做笔记,多听、多动手。课程考试平时情况与考试情况相结合书面考试与上机实验相结合第一章GettingStarted1.关于Java技术2.Java开发工具包的安装与配置3.Java程序的建立、编译与运行4.程序HelloWorld的分析1.1关于Java技术IT界到处都在谈论Java技术,但是Java技术到底是什么?下面我们介绍Java编程语言和Java平台。1.1.1Java编程语言Java编程语言是一种高级编程语言,它具有如下性质:•简单Simple•稳固Robust•高性能Highperformance•安全Secure•面向对象Objectoriented•多线程Multithreaded•动态Dynamic•分布式Distributed•与平台无关Platformindependent•解释Interpreted•轻便Portable1.1.1Java编程语言对于大多数语言,要运行程序,要么编译程序要么解释程序;而Java语言的程序则既要被编译又要被解释。(1)编译程序将Java源程序翻译为字节码(bytecode)程序;(2)解释程序Java虚拟机分析并运行字节码程序。一次编写,处处运行Writeonce,runanywhere!用Java源程序先被编译、后被解释一次编写,处处运行1.1.2Java平台•平台(Platform)是程序在其中运行的硬件或软件环境。•最流行平台:Windows2000,Linux,Solaris,MacOS•Java平台:一种运行在其它硬件平台上纯软件平台,它有两个组件:Java虚拟机(JavaVM)和Java应用编程接口(JavaAPI)1.1.2Java平台•JavaVM是Java平台的基础•JavaAPI是预先建立的软件组件的集合,提供丰富的功能,如GUI部件。JavaAPI被分为相关类和接口的库,这些库称为包(package)JavaAPI和JavaVM将程序与硬件分离1.1.3Java技术可以做什么•Java程序的常见类型是Applet和Application•Java平台的每种完整实现均提供如下功能:(1)基本内容:对象、字符串、线程、输入/输出、数据结构、系统属性、日期、时间等;(2)Applets:与Javaapplet使用的一组约定;(3)连网:URL、传输控制协议(TCP)、用户数据报协议(UDP)套接字和IP地址。(4)国际化:帮助进行本地化的程序。1.1.3Java技术可以做什么(6)安全:包括低层和高层安全性,如电子签名、公共密钥和私有密钥管理、访问控制和证书。(7)软件组件:称为JavaBeans的组件可以插入现有的组件体系结构。(8)对象串行化:通过远程方法调用(RemoteMethodInvocation,RMI)支持轻型的持久性和通信。(9)Java数据库连接(JDBC):提供对各种关系数据库的统一访问。Java2SDK1.2Java开发工具包的安装与配置为了鼓励使用Java语言开发软件,SunMicrosystems公司提供了免费的软件开发工具包(SDK),其中包括编译器、虚拟机、调试器等开发工具,称为Java开发工具包或JDK。Windows版和Solaris版的JDK可以从如下站点下载:开发工具包的安装与配置安装:执行安装程序,按提示即可。1.2Java开发工具包的安装与配置路径配置:加入路径C:\jdk1.3\binSETPATH=%PATH;C:\jdk1.3\bin环境变量:SETCLASSPATH=%CLASSPATH;.;C:\JDK1.3\Lib1.3Java程序的建立、编译与运行•创建第一个应用程序:程序HelloWorldApp将显示一句问候语“HelloWorld!”。•创建第一个小应用程序:程序HelloWorld也将显示一句问候语“HelloWorld!”。1.3.1创建第一个应用程序Step1:创建源代码文件;Step2:将源代码文件编译为字节码文件;Step3:运行字节码文件1.3.1.1创建源代码文件启动“记事本”,输入如下代码:publicclassHelloWorldApp{publicstaticvoidmain(String[]args){//Displaythestring.System.out.println(HelloWorld!);}}注意:大小写敏感;文本文件;文件名为类名.java1.3.1.2编译源代码文件(1)进入DOS或Command提示符状态;(2)转到Java源程序所在目录,如C:\java(3)输入如下命令,并回车:javacHelloWorldApp.java注意:编译成功后将生成字节码文件HelloWorldApp.class1.3.1.3运行程序在相同目录下输入如下命令,并回车:javaHelloWorldApp1.3.2创建第一个小应用程序Step1:创建源代码文件;Step2:配套的HTML文件;Step3:将源代码文件编译为字节码文件;Step4:运行程序。1.3.2.1创建源代码文件启动“记事本”,输入如下代码,并保存为HelloWorld.javaimportjava.applet.Applet;importjava.awt.Graphics;publicclassHelloWorldextendsApplet{publicvoidpaint(Graphicsg){g.drawString(Helloworld!,50,25);}}1.3.2.2创建相应的HTML文件在“记事本”,输入如下代码,并保存为Hello.htmlHTMLHEADTITLEASimpleProgram/TITLE/HEADBODYHereistheoutputofmyprogram:APPLETCODE=HelloWorld.classWIDTH=150HEIGHT=25/APPLET/BODY/HTML1.3.2.3编译源代码文件(1)进入DOS或Command提示符状态;(2)转到Java源程序所在目录,如C:\java(3)输入如下命令,并回车:javacHelloWorld.java注意:编译成功后将生成字节码文件HelloWorld.class1.3.2.4运行程序输入如下命令,并回车:appletviewerHello.html1.4程序HelloWorld的分析既然我们已经编译并运行了第一个Java程序,我们自然想知道它的工作原理。本节我们首先分析HelloWorldApp应用程序,然后再分析HelloWorld小应用程序。1.4.1对应用程序的分析•注释:/*文本*//**文本*/1.4.1对应用程序的分析(续)•定义类:类是面向对象语言的基本构件。类是一个“蓝图”,描述此的实例(instance)相关联的状态和行为。当你实例化(instantiate)一个类时,就是创建一个对象,它的状态和行为与此类的其它实例相同。状态由成员变量表示;行为则由方法表示。1.4.1对应用程序的分析(续)•main方法:每个Java应用程序的入口点都是它的main方法。当运行Java应用程序时,指定要运行的类的名称,Java解释器调用该类中定义的main方法,由main方法控制程序的流程、分配所需资源并运行为此应用程序提供功能的其它方法。1.4.1对应用程序的分析(续)每个Java应用程序必须声明一个mian方法:publicstaticvoidmain(String[]args)修饰符:public:允许任何类调用main方法;static:表示main方法与HelloWorldApp类相关联,而不是在这个类的一个实例上进行操作。void:表示main方法不返回任何值。String:命令行参数。1.4.1对应用程序的分析(续)•使用类和对象该程序使用了System类。System类提供的功能之一是标准输出流。System.out是System类中的out变量的完整名称。应用程序没有实例化System类,而是通过System类直接访问out,这是因为out是类变量,与类相关联,而不与对象相关联。类变量out引用PrintStream类的一个实例。当System类被载入时,它实例化PrintStream类,并为类变量out分配一个新的PrintStream对象,再调用其实例方法:System.out.println(“HelloWorld!”)1.4.2对小应用程序的分析•导入类和包两条import语句分别导入Applet和Graphics类,从而可以引用其它包中的类。如果删除这两行,则须修改程序如下:publicclassHelloWorldextendsjava.applet.Applet{publicvoidpaint(java.awt.Graphicsg){g.drawString(Helloworld!,50,25);}}1.4.2对小应用程序的分析•定义Applet子类publicclassHelloWorldextendsApplet关键字extends表示HelloWorld类是Applet类的一个子类。每个小应用程序applet都必须是Applet类的一个子类,从而继承Applet类的功能,从与浏览器通信到GUI。1.4.2对小应用程序的分析•实现applet的方法HelloWorldapplet只实现了一个方法paint。与应用程序不同,applet不需要main方法。Applet应包含在HTML页面中。1.4.2对小应用程序的分析•运行applet的方法当支持Java的浏览器遇到APPLET标记时,为applet保留屏幕显示空间,将Applet子类装载进它所在的计算机,然后创建Applet子类的一个实例。1.5常见错误编译时错误路径设置错、文字输入错运行时错误源文件名与public类名不一致类的数量源文件格式第二章基本概念2.1注释与程序段注释///**/分号;程序段{}空白第二章基本概念(续)2.2标识符字母、下划线或$开头的字母、数字、下划线和$构成的字符串。2.3Java语言的关键字保留字2.4Java基本数据类型分四大类:逻辑、字符、整数和浮点共9种基本数据类型逻辑类型:boolean字符类型:char和string整数类型:byte,short,int和long浮点类型:float和double2.6Java编程习惯程序可读性类、接口:通常使用名词,且每个单词的首字母要大写方法:可以是动词,首字母小写,其后用大写字母分隔每个单词常量:全部大写,单词之间用下划线分隔变量:同方法,应该避免使用$符号第二章基本概念2.1注释与程序段注释///**/分号;程序段{}空白第二章基本概念(续)2.2标识符字母、下划线或$开头的字母、数字、下划线和$构成的字符串。2.3Java语言的关键字保留字2.4Java基本数据类型分四大类:逻辑、字符、整数和浮点共9种基本数据类型逻辑类型:boolean字符类型:char和string整数类型:byte,short,int和long浮点类型:float和double2.6Java编程习惯程序可读性类、接口:通常使用名词,且每个单词的首字母要大写方法:可以是动词,首字母小写,其后用大写字母分隔每个单词常量:全部大写,