java程序设计教案Word文档格式.docx
《java程序设计教案Word文档格式.docx》由会员分享,可在线阅读,更多相关《java程序设计教案Word文档格式.docx(142页珍藏版)》请在冰豆网上搜索。
9.高性能
10.多线程
11.动态性
12.丰富的类库
13.嵌入浏览器运行
1.3Java类库的概念
1.4网络浏览器
1.5Java开发工具
NetBeans:
这个集成环境可以方便地进行程序的编辑、编译、生成和运行。
J2sdk:
http:
//免费下载;
VisualJ++6.0/8.0:
VJ++还吸收了VB集成开发环境IDE的特征,是一个强有力的Java程序开发工具。
Jcreator
Eclipse(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("
35,30);
小程序对应的HTML文件:
<
HTML>
appletcode="
sayhello.class"
height=100width=200>
/applet>
/HTML>
1.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是非法变量名。
关键字不能用作变量名(见表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;
{
intx=0;
//错误
2.3变量赋值问题
如果类中定义的原子类型变量,未给出初值,那么它们将有缺省值:
byte、short、int和long变量的缺省值是0;
char、float、double和boolean变量的缺省值分别是’\u0’、0.0f、0.0d和false。
方法内定义的局部变量,应当对其赋值,否则无法通过编译。
例如:
//程序2-4
classTest{//定义一个类
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{
inta[]={1,2,3},b[];
b=a;
for(inti=0;
i<
3;
i++)b[i]++;
i++)System.out.println(a[i]);
}
b=newint[6];
System.out.println(“b数组长度=”+b.length);
b.length;
i++)System.out.print(b[i]+“”);
(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;
}
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[]){
numbern1,n2;
n1=newnumber();
n2=newnumber();
n1.x=1;
n2.x=1;
if(n1.x==n2.x)
System.out.println("
对象的数据成员x相等!
if(n1==n2)
n1和n2是一个对象!
else
n1和n2不是一个对象!
2.6.2关系运算符
关系运算符不能同其它类型的变量一同参与运算,例如假设a,b,c是三个整形的变量,那么a=b==c是正确OR错误?
;
关系运算符用于对象时,是判别两个引用是否代表同一个对象。
而不是判断两个引用所指向的对象是否同属一个类。
2.6.3逻辑运算符
逻辑运算符有&
&
、||和!
,分别是与、或和非。
运算结果是true或false;
逻辑运算有求值“短路”现象,例如程序2-11:
publicclassshortCut{
staticbooleantestOne(intx){
System.out.println(x+"
<
+1+"
+(x<
1));
returnx<
1;
}
staticbooleantestTwo(intx){
+(x<
2));
2;
if(testOne(6)&
testTwo
(1))
System.out.println("
表达式为真"
else
表达式为假"
2.6.4位运算符
位运算符:
、|、^、~、<
、>
>
,分别称为位与、或、异或、左移、右移;
Java引入一个专门用于逻辑右移运算符>
,它采用了所谓的零扩展技术,不论原值是正或负,一律在高位补0。
inta=-2,b;
b=a>
30;
2.6.5三元条件运算符
语法格式:
(exp)?
(exp1):
(exp2);
Java要求:
(exp1)与(exp2)必须同类型。
2.6.6“+”运算符
Java对“+”进行了重载,可以将任何类型的对象(包含原子类型)转化为String类型。
例如:
intx=1;
charch='
A'
;
doubled=9.8;
System.out.println("
Result:
+x+ch+9.8);
P323、4、6题。
第3章控制语句
了解Java程序的结构,学习使用各种语句结构来控制程序的流程,完成程序的功能任务。
Java的分支语句;
循环控制语句;
break和continue语句;
带标号的break和continue语句。
3课时
3.1分支语句
if-else语句;
switch-case语句。
3.1.1if语句
if语句的语法格式同C/C++;
条件表达式必须是布尔类型,例如:
下面的写法在C/C++中是合法的,但在Java中却是非法的:
inti=10;
if(i)
...
程序3-1描述了用applet从文本框获取数据,然后将比较的结果显示出来。
//程序3-1
importjava.awt.*;
importjava.applet.*;
publicclasscompareNumbersextendsApplet{
Labellab1,lab2;
TextFieldinput1,input2;
intnum1,num2;
publicvoidinit(){
lab1=newLabel("
输入第1个整数"
input1=newTextField(10);
lab2=newLabel("
输入第2个整数"
input2=newTextField(10);
add(lab1);
add(input1);
add(lab2);
add(input2);
publicbooleanaction(Evente,Objecto){
if(e.target==input1||e.target==input2){
num1=Integer.parseInt(input1.getText());
num2=Integer.parseInt(input2.getText());
if(num1<
num2)
showStatus(num1+"
+num2);
elseif(num1>
showStatus(num1+"
>
+num2);
elseshowStatus(num1+"
=="
}
returntrue;
3.1.2switch语句
switch语句的语法结构同C/C++;
switch后面的表达式类型必须是字符类型或整形;
case后面的常量不能重复;
程序3-3采用小程序实现将学生的百分制成绩转换为优、良,中、及格和不通过五个等级:
//程序3-3
publicclassscoreConvertextendsApplet{
Labelprompt;
TextFieldinput;
intExcellent,Good,Middle,Pass,Failure;
prompt=newLabel("
输入成绩"
input=newTextField
(2);
add(prompt);
add(input);
publicvoidpaint(Graphicsg){
g.drawString("
各等级的人数:
25,40);
优秀:
+Excellent,25,55);
良好:
+Good,25,70);
中等:
+Middle,25,85);
及格:
+Pass,25,100);
不通过:
+Failure,25,115);
publicbooleanaction(Evente,Objecto){
intscore=Integer.parseInt(input.getText());
showStatus("
input.setText("
switch(score/10){
case10:
case9:
Excellent++;
break;
case8:
Good++;
case7:
Middle++;
case6:
Pass++;
break;
case5:
case4:
case3:
case2:
case1:
case0:
Failure++;
default:
输入有误,重新输入!
repaint();
returntrue;
程序3-3需要注意的地方
在action()方法中调用的repaint()方法,是一个系统方法,它具有自动调用paint()方法的能力,从而实现对网页的刷新。
3.2循环控制语句
Java中的循环控制语句有三种,分别是:
while,do-while和for语句;
循环体内的语句会反复执行,直到控制布尔表达式的值变为false为止。
3.2.1while语句
while语句格式:
while(Boolean-Expression)
StatementS
程序示例3-4略
3.2.2do-while语句
do-while语句的语法格式如下:
do{
Statement
}while(Boolean-Expression);
程序3-5如下:
//产生一个大于0.9的随机数为止
publicclassGenerateDoubleNumbers{
doubled;
do{
d=Math.random();
System.out.println(d);
}while(d<
0.9);
3.2.3
for语句
for语句语法格式如下:
for(ForInitopt;
Boolean-Expression;
ForUpdateopt)
Statement
//程序3-6输出一个*三角形
publicclassprintGraphicsextendsApplet{
intxpos,ypos=0;
for(introw=6;
row>
=1;
row--){
xpos