收藏 分销(赏)

Java面向对象程序设计实训试验指导书.doc

上传人:a199****6536 文档编号:2517432 上传时间:2024-05-31 格式:DOC 页数:67 大小:5.50MB 下载积分:14 金币
下载 相关 举报
Java面向对象程序设计实训试验指导书.doc_第1页
第1页 / 共67页
Java面向对象程序设计实训试验指导书.doc_第2页
第2页 / 共67页


点击查看更多>>
资源描述
Java面向对象程序设计 试验指导书 适用专业:计算机网络技术 执 笔 人:周辉奎 南昌工学院信息学院 编 二〇一三年十月 目 录 试验项目一 Java开发环境搭建 1 试验项目二 Java语言基础 8 试验项目三 Java语言面向对象基础 21 试验项目四 图形用户界面设计 39 试验项目五 异常处理 44 试验项目一 Java开发环境搭建 一、试验目标和要求: (一)目标: 1、熟悉安装JDK、JRE; 2、熟悉环境变量配置; 3、熟悉Eclipse; 4、掌握命令提醒符运行第一个java程序。 (二)要求: 1、认真做好试验前各项准备工作,熟悉试验内容和机器操作步骤。 2、遵守试验室规章制度和试验课堂教学纪律。 3、认真完成试验任务,填写试验汇报。 二、试验时数:2课时 三、试验器材: 操作系统:Windows XP操作系统 应用系统:Eclipse 四、试验内容或步骤: 试验1.1 Java开发环境搭建 1、Java JDK安装 单击Java JDK安装包,然后弹出提醒框,点击下一步,直到选择安装目录图1所表示,将安装目录放在E:\Java\jdk1.6.0_35\,然后继续下一步。 图1 设定JDK安装目录 JDK(Java开发工具)安装完成后,系统会自动安装JRE(Java 运行时环境),更改JRE安装目录,将其和JDK放在同一目录下,图2所表示。 图2 设定JRE安装目录 安装完成后,出现图2所表示界面。 图3 Java环境安装结束界面 2、配置环境变量 Java JDK安装完成后,并不能立即使用,还需要配置相关环境变量。右键单击我电脑à属性弹出以下对话框,选择高级à环境变量。 图4 系统高级属性对话框 首先,在系统变量中新建一个JAVA_HOME变量,该变量值为JDK安装目录。在此为E:\Java\jdk1.6.0_35\。(和前面安装时指定目录一致) 图4 JAVA_HOME环境变量设置 注意:变量值后不需要加任何符号。 然后在系统变量中查找path变量,假如存在,则将JDK安装目录下bin文件夹添加其后,多个目录以分号隔开,图5所表示。假如不存在则新建一个,然后将bin目录放进去即可是E:\Java\jdk1.6.0_35\bin; 图5 在path变量中添加Java bin目录 新建classpath环境变量,该变量值为JDK安装目录下lib目录,在此为:;%JAVA_HOME%\lib。图6所表示。 图6 classpath环境变量设定 配置完成后,单击开始à运行,输入cmd,图7所表示,确定,打开命令行窗口。 图7 打开命令行窗口命令 在命令行窗口中输入java –version命令,显示安装Java 版本信息,图8所表示,则表明java JDK、 JRE安装成功。 图8 Java JDK、 JRE安装测试结果 在命令行窗口中输入javac命令,显示安装javac一系列选项参数,图9所表示,则表明java开发环境搭建成功。 图9 Java环境测试结果 【附录】利用命令提醒符来运行Java程序: 1、假设在F盘文件夹javaexe有HelloWorld.java文件。 【操作步骤】开始——运行——cmd,一步步按以下输入(注意:类名和编译文件名必需大小写一致) 说明: javac命令表示编译; java命令表示运行。 【总结】开发Java程序之前JDK、JRE安装及环境配置 一、先安装JDK、JRE,安装时必需全部在同一个目录,假设在E:\Java\jdk1.6.0_35\。 安装完,用命令提醒符测试安装是否正确。 开始——运行——cmd—— java –version,假如显示JDK版本,则安装正确。 二、配置环境变量 1、右击我电脑à属性,选高级à环境变量。 2、在系统变量中新建一个变量名为JAVA_HOME,变量值为 E:\Java\jdk1.6.0_35\ 3、在系统变量中查找path变量,假如存在,则将JDK安装目录下bin文件夹添加其后,多个目录以分号隔开,E:\Java\jdk1.6.0_35\bin; 4、新建classpath环境变量,变量值为 ;%JAVA_HOME%\lib 环境变量配置完,用命令提醒符测试配置是否正确。 开始——运行——cmd—— javac,假如显示javac一系列选项参数,则表明java开发环境搭建成功。 五、注意事项: 1、注意使用javac命令编译源程序。 2、注意使用java命令运行程序。 六、练习项目及思索题: 1、怎样搭建java开发环境。 试验项目二 Java语言基础 一、试验目标和要求: (一)目标: 1、 了解Java 数据类型; 2、 掌握多种变量申明方法; 3、 了解运算符优先级; 4、 掌握Java 基础数据类型、运算符和表示式、数组使用方法; 5、 了解Java 程序语法结构,掌握次序结构、选择结构和循环结构语法程序设计方法; 6、 经过以上内容,掌握Java 语言编程规则。 (二)要求: 1、编写一个申明Java 不一样数据类型变量程序; 2、编写一个使用运算符、表示式、变量程序; 3、编写一个使用Java 数组程序; 4、编写表示式语句、复合语句程序; 5、编写使用不一样选择结构程序; 6、编写使用不一样循环结构结构程序。 二、试验时数:6课时 三、试验器材: 操作系统:Windows XP操作系统 应用系统:Eclipse 四、试验内容或步骤: 1、 试验2.1申明不一样数据类型变量 (1) 编写申明不一样数据类型变量程序文件EXP2_1.java,源代码以下。   public class EXP2_1 {    public static void main(String args[]) {     byte b=0x55;     short s=0x55ff;     int i=1000000;     long l=0xffffL;     char c='a';     float f=0.23F;     double d=0.7E-3;     boolean B=true;     String S="这是字符串类数据类型";     System.out.println("字节型变量 b = "+b);     System.out.println("短整型变量 s = "+s);     System.out.println(" 整型变量 i = "+i);     System.out.println("长整型变量 l = "+l);     System.out.println("字符型变量 c = "+c);     System.out.println("浮点型变量 f = "+f);     System.out.println("双精度变量 d = "+d);     System.out.println("布尔型变量 B = "+B);     System.out.println("字符串类对象 S = "+S);    } } (2) 编译并运行该程序,结果图2.1 所表示。 图 2.1 2、 了解变量使用范围 (1) 建立EXP2_2.java 文件,经过本程序了解变量使用范围,源代码以下。   public class EXP2_2 {    static int i=10;    public static void main(String args[]) {     {      int k=10;      System.out.println("i="+i);      System.out.println("k="+k);     }     System.out.println("i="+i);     System.out.println("k="+k);//编译时将犯错,已出k使用范围    }   } (2) 编译EXP2_2.java   此时会出现错误提醒图2.2 所表示。因为变量k 在方法块中申明,在方法块之外它是不存在,所以编译时会犯错。 图 2.2 (3) 修改上面程序 (4) 成功运行该程序 思索:EXP2_2.java 程序说明了什么问题? 3、 使用关系运算符和逻辑运算符 (1) 建立使用关系运算符和逻辑运算符程序文件,源代码以下。   class EXP2_3 {    public static void main(String args[]) {     int a=25, b=20, e=3, f=0;     boolean d=a<b;     System.out.println("a=25,b=20,e=3,f=0");     System.out.println("因为关系表示式 a<b 为假,所以其逻辑值为 : "+d);     if (e!=0 && a/e>5)      System.out.println("因为e 非0 且a/e 为8 大于5,所以输出 a/e= "+a/e);     if (f!=0 && a/f>5)      System.out.println("a/f = "+a/f);     else      System.out.println("因为f 值为0,所以输出 f = "+f);    }   } (2) 编译并运行该程序,结果图2.3 所表示。 图 2.3 4、 使用数组 (1) 建立使用数组程序,本程序建立了一个长度为5 1 维数组,一个长度为12 2 维数组,源代码以下。   public class EXP2_4 {    public static void main(String args[]) {     int a[]=new int[5];     int arr1[][]=new int[3][4];     a[0]=10;     a[1]=10+a[0];     a[2]=30;     a[3]=40;     a[4]= a[1]+ a[2];     arr1[0][0]=0; arr1[0][1]=1; arr1[0][2]=2;     arr1[1][0]=3; arr1[1][1]=4; arr1[1][2]=5;     arr1[2][0]=6; arr1[2][1]=7; arr1[2][2]=8;     System.out.println("a["+0+"] = "+a[0]);     System.out.println("a["+1+"] = "+a[1]);     System.out.println("a["+2+"] = "+a[2]);     System.out.println("a["+3+"] = "+a[3]);     System.out.println("a["+4+"] = "+a[4]);     System.out.println("arr1("+0+","+0+") = "+arr1[0][0]);     System.out.println("arr1("+0+","+1+") = "+arr1[0][1]);     System.out.println("arr1("+0+","+2+") = "+arr1[0][2]);     System.out.println("arr1("+1+","+0+") = "+arr1[1][0]);     System.out.println("arr1("+1+","+1+") = "+arr1[1][1]);     System.out.println("arr1("+1+","+2+") = "+arr1[1][2]);    }   } (2) 编译并运行程序,结果图2.4 所表示。 图 2.4 5、 使用表示式语句和复合语句 (1) 建立包含表示式语句程序,源代码以下。   class EXP2_5{    public static void main(String[] args) {     int k, i=3, j=4;     k=20*8/4+i+j*i;     System.out.println("表示式(20*8/4+i+j*i)="+k);    }   } (2) 建立包含复合语句程序,源代码以下。   class EXP2_6{    public static void main(String args[]) {     int k, i=3, j=4;     k=i+j;     System.out.println("在复合块外输出 k="+k);     {      float f;      f=j+4.5F;      i++;      System.out.println("在复合块内输出 f="+f);      System.out.println("在复合块内输出 k="+k);     }     System.out.println("在复合块外输出 i="+i);    }   } (3) 编译并运行上述两个源程序,结果图2.5、2.6 所表示。 (4) 将变量i 在块内定义会怎样?改变其它变量位置看看会发生什么改变。 思索:指出程序复合结构和变量使用范围。 图 2.5 图 2.6 6、 使用选择语句 6.1、 使用if...else 语句 (1) 程序功效:使用if...else 语句结构多分支,判定某十二个月是否为闰年。闰年条件是符合下面二者之一:能被4 整除,但不能被100 整除;能被4 整除,又能被100 整除。 (2) 编写源程序文件,代码以下。   public class EXP2_7 {    public static void main(String args[]) {     boolean leap;     int year=;     if ((year%4==0 && year%100!=0) || (year%400==0)) // 方法1      System.out.println(year+" 年是闰年");     else      System.out.println(year+" 年不是闰年");     year=; // 方法2     if (year%4!=0)      leap=false;     else if (year%100!=0)      leap=true;     else if (year%400!=0)      leap=false;     else      leap=true;     if (leap==true)      System.out.println(year+" 年是闰年");     else      System.out.println(year+" 年不是闰年");     year=2050; // 方法3     if (year%4==0) {      if (year%100==0) {       if (year%400==0)        leap=true;       else        leap=false;      }      else       leap=false;     }     else      leap=false;     if (leap==true)      System.out.println(year+" 年是闰年");     else      System.out.println(year+" 年不是闰年");    }   } (3) 编译运行程序,其结果图2.7 所表示。 图 2.7 思索:本程序中有多个选择语句,哪些含有嵌套关系? 6.2、 使用switch 语句 (1) 程序功效:在不一样温度时显示不一样解释说明。 (2) 程序源代码以下。   class EXP2_8{    public static void main(String args[]) {     int c=38;     switch (c<10?1:c<25?2:c<35?3:4) {      case 1:       System.out.println(" "+c+"℃ 有点冷。要多穿衣服。");      case 2:       System.out.println(" "+c+"℃ 正适宜。出去玩吧。");      case 3:       System.out.println(" "+c+"℃ 有点热。");      default:       System.out.println(" "+c+"℃ 太热了!开空调。");     }    }   } (3) 编译运行程序,其结果图2.8 所表示。 图 2.8 7、 使用循环语句 7.1、 for 循环语句练习 (1) 程序功效:按5 度增量打印出一个从摄氏温度到华氏温度转换表。 (2) 程序源代码以下。   class EXP2_9{    public static void main (String args[]) {     int h,c;     System.out.println("摄氏温度\t华氏温度");     for (c=0; c<=40; c+=5) {      h=c*9/5+32;      System.out.println("\t"+c+"\t"+h);     }    }   } (3) 编译并运行程序,其结果图2.9 所表示。 图 2.9 7.2、 while 循环语句练习 (1) 程序功效:运行程序后从键盘输入数字1/2/3 后,可显示抽奖得到奖品;假如输入其它数字或字符显示“没有奖品给你!”。 (2) 程序源代码以下。   import java.io.*;   class EXP2_10 {    public static void main(String args[]) throws IOException {     char ch;     System.out.println("按 1/2/3 数字键可得大奖!");     System.out.println("按’Q’键可退出循环操作.");     while ((ch=(char)System.in.read())!=' ') {      System.in.skip(2); // 跳过回车键      switch (ch) {       case '1':        System.out.println("恭喜你得大奖,一辆汽车!");        break;       case '2':        System.out.println("不错呀,你得到一台笔记本电脑!");        break;       case '3':        System.out.println("没有白来,你得到一台冰箱!");        break;       case ‘q’: System.out.println(“欢迎下次再来!”); System.exit(0);       default:        System.out.println("真不幸,你没有奖品!下次再来吧。");      }     }    }   } (3) 编译源程序。 (4) 在命令提醒符窗口运行程序,然后分别按1、2、3、r 结果图2.10 所表示。 图 2.10 7.3、 do…while 循环语句练习 (1) 程序功效:求1+2+…+100 之和,并将求和表示式和所求和显示出来。 (2) 程序源代码以下。   class EXP2_11 {    public static void main(String args[]) {     int n=1, sum=0;     do {      sum+=n++;     }     while (n<=100);     System.out.println("1+2+...+100 ="+sum);    }   } (3)编译并运行程序,结果图2.11 所表示。 图 2.11 7.4、 多重循环练习 (1) 输出九九乘法表程序,源代码以下。   public class EXP2_12   {    public static void main(String args[])    {     int i,j,n=9;     System.out.print(" * |");     for (i=1;i<=n;i++)      System.out.print(" "+i);     System.out.print("\n---|");     for (i=1;i<=n;i++)      System.out.print("----");     System.out.println();     for (i=1;i<=n;i++)     {      System.out.print(" "+i+" |");      for (j=1;j<=i;j++)       System.out.print(" "+i*j);      System.out.println();     }    }   } (2) 编译并运行程序,结果图2.12 所表示。 五、注意事项: 1、注意Java集成开发环境Eclipse使用。 2、注意Java程序编码方法及书写习惯。 六、练习项目及思索题: 1、观察输出结果,发觉九九表行和列没有对齐,怎样才能输出一张行列对齐九九表? 试验项目三 Java语言面向对象基础 一、试验目标和要求: (一)目标: 1、经过编程和上机试验了解Java语言是怎样表现面向对象编程基础思想; 2、了解类封装方法,和怎样创建类和对象; 3、了解组员变量和组员方法特征; 4、掌握面向对象程序设计方法; 5、了解类继承性和多态性作用; 6、了解接口作用。 (二)要求: 1、 编写一个表现面向对象思想程序; 2、 编写一个创建对象和使用对象方法程序; 3、 编写一个显示目前日期和时间程序; 4、 编写不一样组员变量修饰方法程序; 5、 编写不一样组员方法修饰方法程序; 6、 编写表现类继承性(组员变量、组员方法、组员变量隐藏)程序; 7、 编写表现类多态性(组员方法重载、结构方法重载)程序; 8、编写表现接口功效程序。 二、试验时数:12课时 三、试验器材: 操作系统:Windows XP操作系统 应用系统:Eclipse 四、试验内容或步骤: 1、 试验3.1设计类来描述真实客观世界中事物,使用类组员变量来表示事物属性和状态,使用类组员方法来提供对组员变量访问或修改 (1) 程序功效:设计一个用来描述汽车类,使用类非静态组员变量来表示汽车车主姓名、目前速率和目前方向盘转向角度,使用类非静态组员方法来表示改变汽车速率和停车两个操作。 (2) 程序源代码以下。 public class EXP3_1 { private String ownerName; //车主姓名 private float curSpeed; //目前车速 private float curDirInDegree; //目前方向盘转向角度 public EXP3_1(String ownerName){ this.ownerName=ownerName; } public EXP3_1(String ownerName, float speed, float dirInDegree){ this(ownerName); this.curSpeed=speed; this.curDirInDegree=dirInDegree; } public String getOwnerName() { //提供对车主姓名访问 return ownerName; } public float getCurDirInDegree() { //提供对目前方向盘转向角度访问 return curDirInDegree; } public float getCurSpeed() { //提供对目前车速访问 return curSpeed; } public void changeSpeed(float curSpeed) { //提供改变目前车速 this.curSpeed = curSpeed; } public void stop(){ //提供停车 this.curSpeed=0; } } (3) 编译源程序。 2、 创建类对象,使用对象方法(类非静态方法)来访问或修改对象变量(类非静态变量) (1) 创建类EXP3_1对象,在调用类结构函数时指定对象变量初始值,以后再使用对象方法来访问或修改对象变量值。 (2) 程序代码以下。 public class EXP3_2 { public static void main(String[] args){ EXP3_1 car=new EXP3_1("成龙",200f,25f); System.out.println("车主姓名: "+car.getOwnerName()); System.out.println("目前车速: "+car.getCurSpeed()); System.out.println("目前转向角度: "+car.getCurDirInDegree()); car.changeSpeed(80); System.out.println("在调用changeSpeed(80)后,车速变为: " + car.getCurSpeed()); car.stop(); System.out.println("在调用stop()后, 车速变为: "+car.getCurSpeed()); } } (3) 编译并运行,结果图3.1所表示。 图 3.1 3、 编写显示目前时间和日期程序 (3) 程序功效:该程序经过使用一个自定义类Time,实现显示目前日期和时间功效。 (4) 程序代码以下。 import java.util.Calendar; class Time {    private Calendar t;    private int y, m, d, hh, mm, ss;    Time (){     t=Calendar.getInstance();     y=t.get(t.YEAR);     m=t.get(t.MONTH)+1;     d=t.get(t.DATE);     hh=t.get(t.HOUR_OF_DAY);     mm=t.get(t.MINUTE);     ss=t.get(t.SECOND);    }    public String getDate() {     return y+" 年"+m+"月"+d+"日";    }    public String getTime() {     return hh+" 时"+mm+"分"+ss+"秒";    }   }   public class EXP3_3{    public static void main(String[] args){     Time t=new Time();     System.out.println("目前日期:"+t.getDate());     System.out.println("目前时间:"+t.getTime());    }   } (5) 编译并运行,结果图3.2所表示。 图 3.2 4、 使用修饰符来限定类组员变量或组员方法属性   有时需要公开部分变量和方法,有时需要严禁其它对象使用变量和方法,这时能够使用修饰符来实现这个目标。   常见修饰符以下:    public private protected package static final transient volatile   不一样修饰符访问控制权限如表3.1 所表示。 访问权限修饰符 类 子类 包 全部类和包 public √ √ √ √ private √ protected √ √ √ package √ √ 表 3.1 (1) 程序功效:经过两个类StaticDemo、EXP3_4 说明静态变量/方法和实例变量/方法区分。 (2) 程序源代码以下。   class StaticDemo {    static int x;    int y;    public static int getX() {     return x;    }    public static void setX(int newX) {     x = newX;    }    public int getY() {     return y;    }    public void setY(int newY) {     y = newY;    }   }   public class EXP3_4 {    public static void main(String[] args) {     System.out.println("静态变量x="+StaticDemo.getX());     System.out.println("实例变量y="+StaticDemo.getY()); //非法,编译时将犯错     StaticDemo a= new StaticDemo();     StaticDemo b= new StaticDemo();     a.setX(1);     a.setY(2);     b.setX(3);     b.setY(4);     System.out.println("静态变量a.x="+a.getX());     System.out.println("实例变量a.y="+a.getY());     System.out.println("静态变量b.x="+b.getX());     System.out.println("实例变量b.y="+b.getY());    }   } (3) 对上面源程序进行编译,会出现图3.3所表示犯错提醒。 图 3.3 (4) 将源程序中犯错语句删除或使用解释符//隐藏起来,比如,//System.out.println("实例变量y="+StaticDemo.getY()); (5) 重新编译并运行该程序,结果图3.4所表示。 图 3.4 5、 调用方法时参数传输练习   在其它语言中,函数调用或过程调用时参数有传值调用和传地址调用之分。在Java 中,方法中参数传输能够分为传值调用或对象方法调用等方法。传值调用即传输参数是基础数据类型,调用方法时在方法中将不能改变参数值,这意味着只能使用它们。对象调用是指先调用对象,再调用对象方法,这种方法能够修改许可存取组员变量。所以,假如不想改变参数值,能够采取传值调用方法。假如想改变参数值,可采取对象调用方法,间接修改参数值。 5.1、编写一个传值调用程序 (1) 程序功效:程序首先给整型变量x 和y 赋一个初值10,然后使用传值调用方法调用方法ff1对x 和y 做乘方及输出x 和y 乘方值,最终再输出x 和y 乘方值。 (2) 程序源代码以下。   class EXP3_5 {    public static void main(String[] args) {     int x=10, y=10;     ff1(x, y);     System.out.println("x="+x+", y="+y);    }    static void ff1(int passX, int passY) {     passX=passX*passX;     passY=passY*passY;     System.out.println("passX="+passX+", passY="+passY);    }   } (3) 编译并运行,结果图3.5。 图 3.5 5.2、编写一个调用对象方法程序 (1) 程序功效:经过调用对象方法在方法调用后修改了组员变量值。 (2) 程序源代码以下。   class EXP3_6 {    public static void main(String[] args) {     Power p=new Power();     p.ff2(10,10);     System.out.println("方法调用后 x="+p.x+", y="+p.y);    }   }   class Power{    int x=10, y=10;    void ff2(int passX, int passY) {     System.out.println("初始时 x="+x+", y="+y);     x=passX*passX;     y=passY*passY;     System.out.println("方法调用中 x="+x+", y="+y);    }   }   (3) 编译并运行,结果图3.6。 图 3.6 6、 类继承性练习   新类可从现有类中产生,并保留现有类组员变量和方法并可依据需要对它们加以修改。新类还可添加新变量和方法。这种现象就称为类继承。   当建立一个新类时,无须写出全部组员变量和组员方法。只要简单地申明这个类是从一个已定义类继承下来,就能够引用被继承类全部组员。被继承类称为父类或超类(superclass),这个新类称为
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 技术指导

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服