课程教案(理论教学)课程名称:Java程序设计课程类型:(2)1、必修;2、选修;3、其它授课对象:专业(本科)级班授课时间:至学年第学期计划学时:学时(其中:理论,实验:)任课教师:所属学院:课程管理部门(教研室):大理学院教务处制课程名称:Java程序设计教材:Java程序设计教程讲授人:专业技术职务:讲师学历:研究生学位:硕士讲授题目:所属章节:计划学时:教学目的和要求:教学重点:教学难点:教学方法:使用教具大理学院课程教案(教学内容)1/87第一章Java语言简介教学目的要求了解Java的基本特点和用途掌握如何下载JavaSDK软件包了解设置Java程序的开发环境SDK如何运行Java程序了解Java的概貌主要内容Java语言的发展历程;Java语言的特点;Java语言的开发工具;Java应用程序和小程序;Java程序的注释方法;写Java程序的风格规范。重点内容Java语言的特点;Java语言的开发工具;Java应用程序和小程序;难点内容无课时分配1课时教学方法讲授法、演示法、对比法讲授内容提要1.1Java语言的发展简介1991年SunMircosystem公司成立了一个Green项目开发小组,JameGosling为组长;设计Java采用虚拟机代码(VirtualMachineCode),即.class文件,它通过解释器运行;1995年5月SunMircosystem公司对外正式发布Java1.0;Java2用途:适用于各种应用开发,尤其是网络应用,网络服务和嵌入式系统。1.2Java语言的特点1.简单性2.面向对象3.网络适用性4.健壮性5.安全性6.平台无关性7.可移植性8.解释型9.高性能大理学院课程教案(教学内容)2/8710.多线程11.动态性12.丰富的类库13.嵌入浏览器运行1.3Java类库的概念1.4网络浏览器1.5Java开发工具NetBeans:这个集成环境可以方便地进行程序的编辑、编译、生成和运行。J2sdk:免费下载;VisualJ++6.0/8.0:VJ++还吸收了VB集成开发环境IDE的特征,是一个强有力的Java程序开发工具。JcreatorEclipse(MyEclipse)等1.6Java程序的分类基于控制台的应用程序;基于浏览器运行的小程序applet。小程序与应用程序的区别是:小程序必须依赖一个HTML文件和支持Java的网络浏览器。老师演示小程序和applet程序应用程序举例(程序1-1):publicclasshello{publicstaticvoidmain(Stringargs[]){System.out.println(HelloJava!);}}小程序举例(程序1-2):importjava.awt.Graphics;//注意该行的含义importjava.applet.Applet;publicclasssayhelloextendsApplet{publicvoidpaint(Graphicsg){g.drawString(HelloJava!,35,30);}}小程序对应的HTML文件:HTMLappletcode=sayhello.classheight=100width=200/applet/HTML大理学院课程教案(教学内容)3/871.7对Java程序的解释1.8编写Java程序的风格要求课堂练习:请编写一个应用程序输出你自己的学号和姓名课外练习(作业):下载并安装J2SDK;设置系统环境变量下载并安装MyEclipse熟悉MyEclipse的开发环境第2章数据类型、运算符和表达式教学目的要求掌握字符常量和符号表示的常量的概念和应用掌握整形、浮点型、字符型和布尔型变量的概念和应用掌握数据的概念理解参数传递方式学会逻辑运算符、算术运算符和位运算符的使用方法主要内容常量:包括字面常量和符号表示的常量;变量:整形、浮点型、字符型和布尔型;数组:Java的数组属于类类型;参数传递方式;运算符:包括逻辑运算符、算术运算符和位运算符等;重点内容整形、浮点型、字符型和布尔型变量的概念和应用;符常量和符号表示的常量的概念和应用难点内容参数传递方式课时分配2课时教学方法讲授法、演示法、对比法、实验验证法讲授内容提要2.1常量整形常量:采用八进制、十进制、十六进制表示,但不能采用二进制表示,和C/C++中的一样。浮点常量:采用十进制或科学记数法表示。在缺省情况下一个浮点数是double型。布尔常量:true和false,它们不是数,不能进行算术运算。字符常量:与C/C++中的表示类似。字符串常量:Java中字符串常量是对象。2.2变量变量的命名原则是:以字母(’a’…’z’和’A’…’Z’)、下划线(‘_’)和‘$’符号开头的,由字母、数字(’0’…’9’)、下划线和‘$’构成的一个符号序列。例如,a,_a,NameOfStudent,$10均是合法变量名,而-a和9a是非法变量名。关键字不能用作变大理学院课程教案(教学内容)4/87量名(见表2-1)注意:Java对变量是区分大小写.2.2.1整形类型的变量字节(byte)型,8个位。短整形(short),占16个位。整形(int),占32个位。长整形(longint),占64个位。Java中的整形最值均有符号。例如程序2-1测试最值:publicclassTest_Int{//程序2-1测试整形变量的最值publicstaticvoidmain(String[]args){System.out.println(Byte.MAX_VALUE);System.out.println(Byte.MIN_VALUE);System.out.println(Short.MAX_VALUE);System.out.println(Short.MIN_VALUE);System.out.println(Integer.MAX_VALUE);System.out.println(Integer.MIN_VALUE);System.out.println(Long.MAX_VALUE);System.out.println(Long.MIN_VALUE);}}注意:byte、short、int、long是原子类型,而Byte、Short、Integer和Long分别是四种原子类型对应的类类型。2.2.2字符类型变量Java字符量的长度为16个位,表示范围是从‘\u0000’到‘\uffff’即从0到65535;Character是char类型对应的类类型;最大值Character.MAX_VALUE;最小值Character.MIN_VALUE;2.2.3浮点类型变量分类:float和double。Float、Double是对应的类类型;Float.MAX_VALUE、Float.MIN_VALUE是最值。Float.POSITIVE_INFINITY和Float.NEGATIVE_INFINITY是正/负无限大。2.2.4布尔类型变量boolean变量取值:true和false;true和false不能转换成任何数值表示,true不是1,false也不是0。2.2.5原子类型变量的生存空间一个变量的生存空间是由两个大括号决定的范围。下列写法在C/C++中是正确的,但在Java中是错误的(注意)。{intx=1;{大理学院课程教案(教学内容)5/87intx=0;//错误}}2.3变量赋值问题如果类中定义的原子类型变量,未给出初值,那么它们将有缺省值:byte、short、int和long变量的缺省值是0;char、float、double和boolean变量的缺省值分别是’\u0’、0.0f、0.0d和false。方法内定义的局部变量,应当对其赋值,否则无法通过编译。例如://程序2-4classTest{//定义一个类intValue;//类中的变量未赋值,缺省就是0}publicclassTest_Var{publicstaticvoidmain(String[]args){intx=100;//必须赋值,否则无法通过编译Testobj=newTest();//对象赋值System.out.println(obj.Value++x);}}2.4数组Java数组是系统定义类Array的子类;数组的分类同C/C++:一维和多维。2.4.1一维数组定义数组的格式:inta[];或int[]a;其值是null;在定义数组时不能指定大小。a仅是一个引用,代表一个数组名,但没有对应的空间。产生数组空间的方法有两种:在定义时直接赋值:inta[]={1,2,3};通过new分配空间:inta[]=newint[10];publicclassTest_Array{publicstaticvoidmain(String[]args){inta[]={1,2,3},b[];b=a;for(inti=0;i3;i++)b[i]++;for(inti=0;i3;i++)System.out.println(a[i]);}}publicclassTest_Array{publicstaticvoidmain(String[]args){inta[]={1,2,3},b[];b=newint[6];System.out.println(“b数组长度=”+b.length);for(inti=0;ib.length;i++)System.out.print(b[i]+“”);大理学院课程教案(教学内容)6/87}}注意:(1)获得数组元素的个数:数组名.length;(2)一个整形数组若仅仅采用new分配空间,而没有对其赋值,那么每个元素的值是0注意:Java数组名是一个引用,当将一个数组名赋值给另一个数组时,实际上是名字的复制2.5Java中的参数传递方式Java的参数传递的形式有两种:基本类型按值传递,对象类型按引用传递;通过return语句从方法中返回时,基本类型总是以值的方式返回,而对象总是以引用方式返回。例如程序2-8:classtest{intx;}publicclassTest_Paras{statictestfun(testo,inty){o.x=20;y=1;returno;}publicstaticvoidmain(String[]args){testobj1,obj2;intVal=3;obj1=newtest();obj1.x=100;obj2=fun(obj1,Val);System.out.println(obj1.x++obj2.x++Val);}}2.6Java的运算符主要包括:算术运算符、关系运算符、逻辑运算符、位运算符和三元条件运算符。2.6.1算术运算符算术运算符:+、-、*、/、%、++和--,与C/C++基本相同。%运算符不但可以对整形数据运算,而且可以对浮点型数据运算。例如:3.14%2.5的值约等于0.64;隠式数据类型转换:当整型与浮点型数据进行混合运算时,表达式中的数据类型会进行相应的自动转换,规则为:byte-short-int-long-float-double。这种转换规则也适应于赋值语句,当赋值符左右两侧变量类型不一致时,只要转换过程中不丢失数据,便进行自动转换。classnumber{intx;}publicclassrelationalOperator{publicstaticvoidmain(Stringargs[]){大理学院课程教案(教学内容)7/87numbern1,n2;n1=newnumber();n2=newnumber();n1.x=1;n2.x=1;if(n1.x==n2.x)System.out.println(对象的数据成员x相等!);if(n1==n2)System.out.println(n1和n2是一个对象!);elseSys