上机指导1 本章对ava语言的基础背景知识进行了简要介绍,讲解了JDK(Jaa开发工具箱)以及 开发工具的使用,同时通过几个简单的Java程序说明了DK的使用。下面通过上机指导进 步巩固其中相关的知识点。 实验1-1:运算并显示某一算式的运算结果 实验内容 编程实现运算一个简单的算式12345679×72,并在屏幕上输出计算的结果。运行后结 果如图1-36所示。 图136实验11运行结果 实验目的 通过这个简单的实例让读者了解JDX的使用,以及对ava程序的编译运行过程有一个 实际的了解 实现思路 在1.5节的简单aa程序中,演示了如何通过aa语言编写程序,并编译运行,最终 在屏幕上输出“Hello World!”一行文本。同样,对于其他ava语言编写的程序都可按照其 步骤进行编译运行。本实验只要少量改动该例子,就可以实现在屏幕上显示该算式的结果, 得到如图136所示的运行结果。 实验1-2:编写一个Java Applet在网页中显示两行字符串 实验内容 编写lava Applet (Java小应用程序),用于在网页中显示两个字符串。运行后效果如图137 所示 图137在网顶上显乐若干字符申 实验目的 通过这个简单的实例让读者了解ava小应用程序的使用,并且对Java Applet的部若 与运行有一个实际的了解, 实现思路 在1.7节的简单Java小应用程序示例中,演示了如何通过ava语言编写ava小应用程 序并编译运行,然后将其嵌入到网页中,最终在网页上输出文本。同样,对于其他a阳语
1 本章对 Java 语言的基础背景知识进行了简要介绍,讲解了 JDK(Java 开发工具箱)以及 开发工具的使用,同时通过几个简单的 Java 程序说明了 JDK 的使用。下面通过上机指导进 一步巩固其中相关的知识点。 实验内容 编程实现运算一个简单的算式 1234567972,并在屏幕上输出计算的结果。运行后结 果如图 1-36 所示。 1-36 1-1 实验目的 通过这个简单的实例让读者了解 JDK 的使用,以及对 Java 程序的编译运行过程有一个 实际的了解。 实现思路 在 1.5 节的简单 Java 程序中,演示了如何通过 Java 语言编写程序,并编译运行,最终 在屏幕上输出“Hello World!”一行文本。同样,对于其他 Java 语言编写的程序都可按照其 步骤进行编译运行。本实验只要少量改动该例子,就可以实现在屏幕上显示该算式的结果, 得到如图 1-36 所示的运行结果。 实验内容 编写Java Applet(Java小应用程序),用于在网页中显示两个字符串。运行后效果如图 1-37 所示。 1-37 实验目的 通过这个简单的实例让读者了解 Java 小应用程序的使用,并且对 Java Applet 的部署 与运行有一个实际的了解。 实现思路 在 1.7 节的简单 Java 小应用程序示例中,演示了如何通过 Java 语言编写 Java 小应用程 序并编译运行,然后将其嵌入到网页中,最终在网页上输出文本。同样,对于其他 Java 语
言编写的妇va小应用程序我们都可按照其步骤进行编译部署并运行。少量改动该例子代码, 就可以实现在网页上显示两个字符串,达到图137所示的效果。 实验1-3:编写JavaApplet实现显示系统当前时间 实验内容 编写一个Java Applet,在屏幕上显示系统当前时间。运行后效果如图1-38所示。 B:\rar mMm03233031C3T1008 小空用水3t。T区就的电面 图138显示当前系统时间 实验目的 通过这个简单的实例让读者了解lava Applet的实际应用,并进一步巩固本章所学的知 识。 实现思路 通过java.uti.dte包中的一些方法,获取当前系统的时间并显示,代码如下所示 public class Examplel 3 extends Applet /Applet //Applet! d=new Date() g.drawstring(d.totring(),10,25): //Applet!i 利用avac命令编译后,将其嵌入网页中,嵌入网页中的代码如下所示: 2 2
2 言编写的 Java 小应用程序我们都可按照其步骤进行编译部署并运行。少量改动该例子代码, 就可以实现在网页上显示两个字符串,达到图 1-37 所示的效果。 实验内容 编写一个 Java Applet,在屏幕上显示系统当前时间。运行后效果如图 1-38 所示。 1-38 实验目的 通过这个简单的实例让读者了解 Java Applet 的实际应用,并进一步巩固本章所学的知 识。 实现思路 通过 java.util.date 包中的一些方法,获取当前系统的时间并显示,代码如下所示: imp or t ja va .ap pl et .* ; imp or t ja va .aw t. Gr ap hi cs ; imp or t ja va .ut il .D at e; pub li c cl as s E xa mp le 1_ 3 ext en ds A pp le t { // App let p ub lic D at e d; p ub lic v oi d in it () //Applet { d= new D at e( ); } p ub lic v oi d pa in t(G ra ph ic s g) { //Applet g. dra wS tr in g( d. toS tr in g( ), 10 ,25 ); } } 利用 javac 命令编译后,将其嵌入网页中,嵌入网页中的代码如下所示: 运行代码,就可以得到如图 1-38 所示的效果了
三 上机指导2 本章对Java的基本语法做了详细的讲解,其中包括Java的基本数据类型、标记符、表 达式等。下面通过上机指导进一步巩周其中相关的知识点。 实验2-1:不同类型数据间的运算(一) 实验内容 创建以下4个变量: charx='h'; int intx =65: float floatx=3.3333f, double 4.444 编程实现计算chax+intx、floatx-intx、doublex/floatx的结果并在屏幕上显示,获 取如图2-28所示的运行结果。 le> 图228实验21运行结果 实验目的 通过这个简单的实例让读者了解ava语言中的类型自动转换 实现思路 在2.2.5小节已经介绍了Jaa语言中基本数据类型值之间自动转换的基本概念,并通过 简单的示例进行了演示。 实验2-2:不同类型数据间的运算(二) 实验内容 声明3个变量 double dx=3.5 double dy=.8; int z 编程实现计算=+dy的结果并在屏幕上显示。运行结果如图2-29所示 同C03st24 图2-29实验22运行结界 实验目的 3
3 本章对 Java 的基本语法做了详细的讲解,其中包括 Java 的基本数据类型、标记符、表 达式等。下面通过上机指导进一步巩固其中相关的知识点。 实验内容 创建以下 4 个变量: charx = 'h'; int intx = 65; float floatx = 3.3333f; double doublex = 4.444; 编程实现计算 charx + intx、floatx – intx、doublex / floatx 的结果并在屏幕上显示,获 取如图 2-28 所示的运行结果。 2-28 2-1 实验目的 通过这个简单的实例让读者了解 Java 语言中的类型自动转换。 实现思路 在 2.2.5 小节已经介绍了 Java 语言中基本数据类型值之间自动转换的基本概念,并通过 简单的示例进行了演示。 实验内容 声明 3 个变量: double dx = 3.5; double dy = 2.8; int z; 编程实现计算 z=dx + dy 的结果并在屏幕上显示。运行结果如图 2-29 所示。 2-29 2-2 实验目的
通过这个简单的实例让读者了解ava语言中的类型强制转换。 实现思路 在2.2.5小节介绍了1aa语言中强制类型转换的基本概念,并通过简单的示例进行了演 示。 实验2-3:在屏幕上打印出各种基本类型的数值 实验内容 编程实现输出各种类型的常量数值,包括整型、字节型、短整型、字符型、长整型、单 精度型、双精度型、布尔型,运行结果如图2-30所示。 图2-30实验2-3运行结界 实验目的 通过这个简单的实例让读者从实际了解」a阳语言中的各种基本类型,并对其不同类型 的数值有一个深刻的印象。 实现思路 定义若干个aa语言中各种基本类型的数值,并在屏幕上显示出来。 代码如下所示: class DataType Demo public static void sain(ringargv]) int a.1 byte b= 22 10nge=9000000: 月1上111111:e t10att=0.24t: /片【t11上t1111t doub1eg=1111.111111 /I:11【「I11g b001 ean bo011ue //ii boo11 System.out.printin("Int data a="ta): /61111a System.out.printin("Byte data b+b); System.out.printin("Short data d"+d) system.out .printin('char aata c="+e) System.out.printin("long data e"te) a) System.out.printin("Boolean data booll-"+booll): 1i1111f1boo111 4
4 通过这个简单的实例让读者了解 Java 语言中的类型强制转换。 实现思路 在 2.2.5 小节介绍了 Java 语言中强制类型转换的基本概念,并通过简单的示例进行了演 示。 实验内容 编程实现输出各种类型的常量数值,包括整型、字节型、短整型、字符型、长整型、单 精度型、双精度型、布尔型,运行结果如图 2-30 所示。 2-30 2-3 实验目的 通过这个简单的实例让读者从实际了解 Java 语言中的各种基本类型,并对其不同类型 的数值有一个深刻的印象。 实现思路 定义若干个 Java 语言中各种基本类型的数值,并在屏幕上显示出来。 代码如下所示: cla ss D at aT ype De mo { p ub lic s ta ti c vo id ma in (S tr in g a rg v[ ]) { in t a = 1; // a by te b = 1 27; // b sh or t d = 200 ; // d ch ar c = ' C'; // c lo ng e = 9 000 00 0; // e fl oa t f = 0.2 4f ; // f do ub le g = 11 11 .1 11 11 1; // g bo ol ea n bo ol1 = t ru e; // bo ol 1 bo ol ea n bo ol2 = f al se ; Sy st em .o ut .pr in tl n( "I nt da ta a =" +a ); // a Sy st em .o ut .pr in tl n( "B yt e d at a b= "+ b) ; // b Sy st em .o ut .pr in tl n( "S ho rt da ta d =" +d ); // d Sy st em .o ut .pr in tl n( "C ha r d at a c= "+ c) ; // c Sy st em .o ut .pr in tl n( "l on g d at a e= "+ e) ; // e Sy st em .o ut .pr in tl n( "f lo at da ta f =" +f ); // f Sy st em .o ut .pr in tl n( "d ou ble d at a g= "+ g); // g Sy st em .o ut .pr in tl n( "B oo lea n da ta b oo l1= "+ bo ol 1) ; // b ool 1
System.out.printin("Boolean data boo12-"+bool2);//bool21 通过javac、ava等命令编译并运行程序,运行程序结果如图2-30所示
5 Sy st em .o ut .pr in tl n( "B oo lea n da ta b oo l2= "+ bo ol 2) ; // b ool 2 } } 通过 javac、java 等命令编译并运行程序,运行程序结果如图 2-30 所示
上机指导3 本章对Java语言中的控制语句做了详细讲解,其中包括Java的循环语句、J归va的跳转 语句、Java的选择语句、Java的晰言等,本节将利用己讲解的知识进行实践。 实验3-1:多重for循环绘制图形 实验内容 编程实现运算一个简单的图形绘制,利用符号“*”的个数,实现不同的图形。实现 结果如图330所示。 图330实验31运行结果 实验目的 通过这个简单实例让读者巩固学习for语句的使用。 实现思路 根据绘制图形的规律,发现“幸”符号的变化规律,从而利用o循环对其进行绘制。 关键代码如下所示: nt temp 0: 1小I111tIte即 for(int:2.n1;) 6n-.2+m-1-1 //I templ for(intj:j<temp:j+t) II fori systen.out.print ("*") /八111"时1 System.out.println(): /i11:f11 通过javac、java等命令编译并运行程序,运行结果如图3-30所示。 实验3-2:使用switch语句实现条件分支 实验内容 编程实现运算一个简单的程序,程序可以根据学生的成绩判断学生成锁的等级。声明 个整形数组保存学生成绩,如:int student=95,85,75,65,55.程序运行结果如图3-31所示 6
6 本章对 Java 语言中的控制语句做了详细讲解,其中包括 Java 的循环语句、Java 的跳转 语句、Java 的选择语句、Java 的断言等,本节将利用已讲解的知识进行实践。 实验内容 编程实现运算一个简单的图形绘制,利用符号“*”的个数,实现不同的图形。实现 结果如图 3-30 所示。 3-30 3-1 实验目的 通过这个简单实例让读者巩固学习 for 语句的使用。 实现思路 根据绘制图形的规律,发现“*”符号的变化规律,从而利用 for 循环对其进行绘制。 关键代码如下所示: int t em p = 0; // te mp for (i nt i = 0; i < 2 * n - 1; i ++ ) { if (i < = n) t em p = i; el se t em p = 2 * n - 1 - i ; // tem p fo r( in t j = 0 ; j < te mp ; j ++ ) // for S ys te m. out .p ri nt (" *" ); // "* " Sy st em .o ut .pr in tl n( ); // } 通过 javac、java 等命令编译并运行程序,运行结果如图 3-30 所示。 实验内容 编程实现运算一个简单的程序,程序可以根据学生的成绩判断学生成绩的等级。声明一 个整形数组保存学生成绩,如:int student[] = {95,85,75,65,55}。程序运行结果如图 3-31 所示
甘及习 图331实验32运行结果 实验目的 通过这个简单实例让读者利用switch语句来实现条件分支,实现对于不同分数段的成 绩,输出不同等级标识。 实现思路 首先定义5个学生,分别对其的成绩进行赋值,并在for循环语句中利用Switch语句分 别对每个学生的成绩进行判断。 关键代码如下所示: int student1·t95,85,75,65,551: 1f1111·11,1f15卡1t for(int is0:i<5:i++) /n1I(:III11{11 svitch(student []/10) 1n1 svitch,11111110i111f141 case 9: /711P- 1oyaten.out.printin("student's result is B ystem.out.printin("atudent's result is C!"); 1n111101711111c 通过javac、java等命令编译并运行程序,运行程序结果如图3-31所示。 实验3-3:使用switch语句实现条件分支测试break功能 实验内容 在实验3-2的基础上进行简单修改,在每个case语句后不加break语句。运行后效果如 7
7 3-31 3-2 实验目的 通过这个简单实例让读者利用 switch 语句来实现条件分支,实现对于不同分数段的成 绩,输出不同等级标识。 实现思路 首先定义 5 个学生,分别对其的成绩进行赋值,并在 for 循环语句中利用 Switch 语句分 别对每个学生的成绩进行判断。 关键代码如下所示: in t s tu de nt [] = {9 5, 85 ,7 5, 65 ,55 }; // 5 fo r(i nt i =0 ;i <5 ;i+ +) // { switch(student[i]/10) // swi tch 10 { c ase 9 : S ys te m.o ut .p ri nt ln ("s tu de nt "+ i+ "'s r es ul t is A! ") ; // 1 0 9 "A " b re ak ; c ase 8 : S ys te m.o ut .p ri nt ln ("s tu de nt "+ i+ "'s r es ul t is B! ") ; // 1 0 8 "B " b re ak ; c ase 7 : S ys te m.o ut .p ri nt ln ("s tu de nt "+ i+ "'s r es ul t is C! ") ; // 1 0 7 "C " b re ak ; c ase 6 : S ys te m.o ut .p ri nt ln ("s tu de nt "+ i+ "'s r es ul t is D! ") ; // 10 6 " D" b re ak ; d efa ul t: S ys te m.o ut .p ri nt ln ("s tu de nt "+ i+ "'s r es ul t is F! ") ; // 1 0 1 5 "F " } } 通过 javac、java 等命令编译并运行程序,运行程序结果如图 3-31 所示。 实验内容 在实验 3-2 的基础上进行简单修改,在每个 case 语句后不加 break 语句。运行后效果如
图332所示。显然这个运行结果是不符合常规逻辑的: 际命冷畏示莉 图332实验33运行结果 实验目的 通过这个简单实例让读者利用switch语句来实现条件分支,用含有break和不含有break 的case语句做比较,测试break的功能, 实现思路 结合实验3-2进行比较设计,实现思路与实验3-2基本相同,不同之处在于:每个cse 语句之后没有break语句。通过比较输出结果的区别,进一步了解break语句的功能。 关健代码如下所示: nt student095,85,75,65,551: for(int i0:i<5:i++) 1n11111411t1411 case 9: 10f case 8. case 6 default 通过javac、java等命令编译并运行程序,运行程序结果如图3-32所示。 8
8 图 3-32 所示。显然这个运行结果是不符合常规逻辑的。 3-32 3-3 实验目的 通过这个简单实例让读者利用 switch 语句来实现条件分支,用含有 break 和不含有 break 的 case 语句做比较,测试 break 的功能。 实现思路 结合实验 3-2 进行比较设计,实现思路与实验 3-2 基本相同,不同之处在于:每个 case 语句之后没有 break 语句。通过比较输出结果的区别,进一步了解 break 语句的功能。 关键代码如下所示: in t s tu de nt [] = {9 5, 85 ,7 5, 65 ,55 }; // 5 fo r(i nt i =0 ;i <5 ;i+ +) // { switch(student[i]/10) // swi tch 10 { c ase 9 : S ys te m.o ut .p ri nt ln ("s tu de nt "+ i+ "'s r es ul t is A! ") ; // 10 9 " A" c ase 8 : S ys te m.o ut .p ri nt ln ("s tu de nt "+ i+ "'s r es ul t is B! ") ; // 1 0 8 "B " c ase 7 : S ys te m.o ut .p ri nt ln ("s tu de nt "+ i+ "'s r es ul t is C! ") ; // 1 0 7 "C " c ase 6 : S ys te m.o ut .p ri nt ln ("s tu de nt "+ i+ "'s r es ul t is D! ") ; // 10 6 " D" d efa ul t: S ys te m.o ut .p ri nt ln ("s tu de nt "+ i+ "'s r es ul t is F! ") ; // 1 0 1 5 "F " } } 通过 javac、java 等命令编译并运行程序,运行程序结果如图 3-32 所示
上机指导4 本章介绍了面向对象的基本思想,并详细介绍了类的定义及其使用,同时介绍了成员变 量与方法的继承、方法的重载、fnal与abstract的类与方法。 实验4-1:对象引用型成员变量的使用 实验内容 编程实现两个同类对象的比较,两个对象的成员变量intMember都为默认值66,并在 屏幕上输出比较的结果。运行后效果如图4-12所示。 图412实验41运行结果 实验目的 通过这个简单的实例让读者了解对象引用型成员变量的使用,加深对类、对象的理解 实现思路 首先利用定义类的成员变量intMember默认值为66,两个对象的intMember成员变星 初始值都是66,两个对象是一样的。第一次比较两个引用返回的是Fase,因为各自指向不 同的对象。第二次比较两个引用返回的是True,因为在比较前将ref2的值赋给了ref1,这 样两个引用指向同一个对象了。 关罐代码如下所示 System.out.println("refl rer2): else Syatem.out.printin("retl!ret2i"); refl-ret2: if(refl-ref2) Syatem.out.printin("retl ret21); else System.out.printin("refl ref2i ") 通过javac、.java等命令编译并运行程序,运行程序结果如图412所示 9
9 本章介绍了面向对象的基本思想,并详细介绍了类的定义及其使用,同时介绍了成员变 量与方法的继承、方法的重载、final 与 abstract 的类与方法。 实验内容 编程实现两个同类对象的比较,两个对象的成员变量 intMember 都为默认值 66,并在 屏幕上输出比较的结果。运行后效果如图 4-12 所示。 4-12 4-1 实验目的 通过这个简单的实例让读者了解对象引用型成员变量的使用,加深对类、对象的理解。 实现思路 首先利用定义类的成员变量 intMember 默认值为 66,两个对象的 intMember 成员变量 初始值都是 66,两个对象是一样的。第一次比较两个引用返回的是 False,因为各自指向不 同的对象。第二次比较两个引用返回的是 True,因为在比较前将 ref2 的值赋给了 ref1,这 样两个引用指向同一个对象了。 关键代码如下所示: // Sam pl e6 _4 r ef1 =n ew S am pl e6_ 4( ); Sam pl e6 _4 r ef2 =n ew S am pl e6_ 4( ); // System.out.println("ref1.intMember="+ref1.intMember+", ref2.intMember="+ref2. intMember); // if( re f1 == re f2) { System.out.println("ref1 r ef2 " ); } els e { System.out.println("ref1 r ef2 ") ; } ref 1= re f2 ; if( re f1 == re f2) { System.out.println("ref1 r ef2 " ); } els e { System.out.println("ref1 r ef2 ") ; } 通过 javac、java 等命令编译并运行程序,运行程序结果如图 4-12 所示
实验4-2:含有返回值的方法的使用 实验内容 编程实现调用带有返回值的方法,并在屏幕上输出调用后的结果。分别定义返回值为整 形、字符型、双精度等的方法,为了简单,方法中可以不做任何操作,直接将已定义的变量 值返回。运行后效果如图4-13所示。 实验目的 方法的使用,让读 w试及 者了解如果调用带有返回值的方法。 实现思路 首先利用定义含有返回值的各种方法, 方法里 用各种方法,将其返回值直接输出至屏幕。 关键代码如下所示: int 图4-13实验4+2运行钻果 /11111111,1i11f1oat 1111; double public double getDouble() (return d;) 11 nain1111111111141111t 通过javac、java等命令编译并运行程序,运行程序结果如图413所示。 实验4-3:使用对象模拟“商店客户折扣卡”功能 实验内容 编程实现一个模拟的用户消费信用卡的示例,在其中用户Cu5 tomer类具有用户名、地
10 实验内容 编程实现调用带有返回值的方法,并在屏幕上输出调用后的结果。分别定义返回值为整 形、字符型、双精度等的方法,为了简单,方法中可以不做任何操作,直接将已定义的变量 值返回。运行后效果如图 4-13 所示。 实验目的 在书中简单介绍了方法的使用,而本实验 将给读者介绍带有返回值的方法的使用,让读 者了解如果调用带有返回值的方法。 实现思路 首先利用定义含有返回值的各种方法, 如:返回值为整型的,返回值为字符型的,返 回值为双精度型的。在主方法里,可以直接调 用各种方法,将其返回值直接输出至屏幕。 关键代码如下所示: // , int pub li c in t get In t( ) {re tu rn a ;} // , c har pub li c ch ar ge tC ha r( ) {re tu rn c ;} // , f lo at pub li c fl oa t g et Fl oa t( ) {re tu rn f ;} // , d ou ble pub li c do ub le ge tD ou bl e( ) {re tu rn d ;} // , St ri ng pub li c St ri ng ge tS tr in g( ) {re tu rn s tr ;} //main // pri va te i nt a = 10 0; pri va te c ha r c = ' C' ; pri va te f lo at f = 3. 0f ; pri va te d ou ble d = 4 .0 ; pri va te S tr ing s tr = " He llo "; // Sy st em .o ut .pr in tl n( ge tI nt( )) ; Sy st em .o ut .pr in tl n( ge tC har () ); Sy st em .o ut .pr in tl n( ge tF loa t( )) ; Sy st em .o ut .pr in tl n( ge tD oub le () ); Sy st em .o ut .pr in tl n( ge tS tri ng () ); 通过 javac、java 等命令编译并运行程序,运行程序结果如图 4-13 所示。 实验内容 编程实现一个模拟的用户消费信用卡的示例,在其中用户 Customer 类具有用户名、地 4-13 4-2