




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一 Java Application程序的编辑、编译和运行一、实验目的1熟悉JDK开发环境。2熟悉Edit编辑器的使用。3掌握Java Application的程序结构和开发过程。二、实验设备和仪器电脑 三、实验内容及要求 1JDK开发环境(1)JDK1.4.1开发环境安装在“C:JDK1.4.1”目录下。(2)设置环境变量PATH和CLASSPATH(如果在autoexec.bat中没有进行设置)。进入命令行(MS-DOS)方式,进行如下设置:SET PATH=C:JDK1.4.1BIN;%PATH%SET CLASSPATH=.; %CLASSPATH%2Edit编辑器3掌握Java Application程序开发过程四、实验原理及步骤 实验原理 一个java应用程序是由若干个类组成的,其中最多能有一个public类。有且只能有一个类含有main方法。Java源程序的扩展名为java。Java源程序的名字必须和public类的类名相同,如果没有public类,只要和其中任一类的类名相同就行。编译java源程序会产生字节码(.class )文件,源程序有几个类就会产生几个class文件。运行时,只运行含有main方法的class文件。2.步骤(1)打开Edit编辑器。(2)键入如下程序:import java.io.*;public class HelloWorld1public static void main(String arg)System.out.println(Hello World!);(3)检查无误后(注意大小写)保存文件。可将文件保存在“D:Java”目录中,注意文件名为HelloWorld1.java。(4)进入命令行(MS-DOS)方式,设定当前目录为“D:Java”,运行Java编译器:D:Javajavac HelloWorld1.java(5)如果输出错误信息,则根据错误信息提示的错误所在行返回Edit编辑器进行修改。常见错误是类名与文件名不一致、当前目录中没有所需源程序、标点符号全角等。如果没有输出任何信息或者出现“deprecation”警告,则认为编译成功,此时会在当前目录中生成HelloWorld1.class文件。(6)利用Java解释器运行这个Java Application程序,并查看运行结果。D:Javajava HelloWorld1五、实验结果分析及实验报告要求 1写出JAVA开发环境配置按步骤2编写、运行一个简单的JAVA应用程序,将源代码写清楚实验二 Java程序设计基础一、实验目的1掌握标识符的定义规则。2掌握表达式的组成。3掌握各种数据类型及其使用方法。4理解定义变量的作用,掌握定义变量的方法。5掌握各种运算符的使用及其优先级控制。 6. 掌握Java数组的声明、初始化以及使用方法,理解Java数组是Java对象的含义。7. 掌握String类的常用成员方法。二、实验设备和仪器 电脑三、实验内容及要求 1.定义一个数组,具有以下方法:public static int max(int table);public static int min(int table);public static void sort(int table);public static int indexOf(int table,int key);public static boolean isSorted(int table);2.找出一个二维数组的鞍点。3. 判断该字符串是否是回文,回文是如下形式的字符串:abcdcba四、实验原理及步骤 1.实验原理 Java中数据类型分为基本数据类型与复合数据类型,相应地变量分为基本类型与引用类型。基本类型变量有8种,而类、接口和数组变量是引用类型。基本类型变量使用和C及C+完全一样,但引用类型的使用有点与C中的指针相同(注意Java中并没有指针的概念)。引用类型变量的使用有引用空间与数据空间的概念,当变量声明时只是给该变量分配引用空间(或可以理解为地址空间),数据空间并没有分配。 例如定义:Mydate today; 定义的变量名today为引用空间的变量名today=new Mydate(); 实例化Mydate类的一个对象,也即产生了数据空间用于存放该对象的数据。并且将该对象的地址赋给today,这样对象名today就指向了相应的数据空间。数组的定义和使用举例 int a=new int6; 程序的流程控制结构和C语言基本类同,有顺序结构、选择结构、循环结构。但初学面向对象编程容易犯程序结构上的毛病,许多同学编出的程序和面向过程语言的一样只是换成Java的语法。原则上面向对象编程的结构,应该以类为基本组织单位。2.步骤第一个题目代码如下:public class Array /* * author Leijine */public static int max(int table) int maxvalue=table0; for(int i=1;imaxvalue) maxvalue=tablei; return maxvalue;public static int min(int table) int minvalue=table0; for(int i=1;itable.length;i+) if(tableiminvalue) minvalue=tablei; return minvalue;public static int indexOf(int table,int key)int k=-1;for(int i=0;itable.length;i+)if(key=tablei)k=i;return k;public static void sort(int table)int i,j,temp;for(i=0;itable.length-1;i+)for(j=i+1;jtablej)temp=tablei;tablei=tablej;tablej=temp;public static boolean isSorted(int table)for(int i=0;itablei+1)return false;return true;public static void main(String args) int a=23,44,22,34;System.out.println(max(a)+ +min(a)+ +indexOf(a,22);sort(a);System.out.print(isSorted(a);第二个题目代码如下:public class AnDian public static void main(String args) int a=11,4,2,1,33,22,1,44,55,67,23,454,34,222,42,114; int max,min,y=0,x=0,flag=0,i,j; flag=0; for( i=0;ia.length;i+) max=min=ai0; for(j=0;jmax) min=max=aij; y=j; x=i; for(int k=0;ka.length;k+) if(aky0) /获得命令行参数 str=args0; System.out.println(str=+str); boolean yes=true; /算法一 int n=str.length(); /获得字符串长度 int i=0; char ch1,ch2; while (yes & (in/2) ) ch1=str.charAt(i); /获得最前的字符 ch2=str.charAt(n-i-1); /获得最后的字符 System.out.println(ch1=+ch1+ ch2=+ch2); if (ch1=ch2) /比较字符 i+; else yes=false; System.out.println(算法一: +yes); String temp=,sub1=; /算法二 for (i=0;ib)return a+ +b;elsereturn b+ +a;public String sort(int a, int b, int c) int swap;if (ab) swap=a;a=b;b=swap;if (ac) swap=a;a=c;c=swap;if (bc) swap=b;b=c;c=swap;return a+ +b+ +c;public String sort(int arr) String s= ;int swap;for (int i=0; iarr.length; i+)for (int j=0; jarrj+1) swap=arrj;arrj=arrj+1;arrj+1=swap;for (int i=0; iarr.length; i+)s=s+arri+ ;return s;public class EXP3_11 public static void main(String args)IntSort s=new IntSort();int a=30, b=12, c=40;int arr=34,8,12,67,44,98,52,23,16,16;System.out.println(两个数的排序结果:+s.sort(a,b);System.out.println (三个数的排序结果:+s.sort(a,b,c);System.out.println (数组的排序结果:+s.sort(arr);实验记录内容要求:写出上述程序的运行结果,并总结方法重载的合法条件。4.2、 构造函数的重载构造方法的名称和类同名,没有返回类型。尽管构造方法看起来和一般的成员方法没有差别,但它不是方法,也不是类的成员。因此,构造方法不能直接调用,只能由new 操作符调用。构造方法对于类是十分重要的,对象的初始化任务要靠构造方法来完成。重载构造方法的目的是提供多种初始化对象的能力,使程序员可以根据实际需要选用合适的构造方法来初始化对象。 实验记录内容:找出实验四中的父子类中的构造方法重载语句。4.3、 方法的覆盖通过继承子类可以继承父类中所有可以被子类访问的成员方法,但如果子类的方法与父类方法同名,则不能继承,此时称子类的方法覆盖了父类的方法,简称为方法覆盖(override)。方法覆盖为子类提供了修改父类成员方法的能力。例如,子类可以修改层层继承下来的Object 根类的toString 方法,让它输出一些更有用的信息。下面的程序显示了在子类Circle 中添加toString 方法,用来返回圆半径和圆面积信息。(1) 下列有一个Circle类,要求编写两个方法覆盖Object 类的equals方法(如果两个圆半径相等就认为两个圆相等)和toString方法(输出结果:圆半径:x厘米,圆面积y平方厘米,其中x,y是相应的值)class Circle private int radius;public Circle(int r) this.setRadius(r);public void setRadius(int r) radius = r;public int getRadius() return radius;public double area() return 3.14159 * radius * radius;/* 此处定义toString()方法定义 */public boolean equals(Object o) Circle c = (Circle) o;return radius = c.radius;/* 此处定义equals()方法定义 */public String toString() return 圆半径: + radius + 圆面积为: + 3.14 * radius * radius;public class Test public static void main(String args) Circle c1 = new Circle(10);Circle c2 = new Circle(10);System.out.println(n + c1.equals(c2) + c1.toString();4.4 抽象类的编程应用。 编写一个能产生三个柱体对象,分别是底部形状分别是Circle、Triangle(三角形), Rectangle(长方形)的情况,并计算相应面积。思路:该程序有两种实现方式。 1)定义三个柱体类,分别是CirclePillar类、TrianglePillar类、RectanglePillar类,分别生成三个类的实例,但该方法的缺陷是什么? 2)设计一个Shape抽象类,该类有一个抽象方法area(),设计一个Pillar(柱体)类,该类有两个成员变量:Shape和height,并创建3个实例:底部形状分别为Circle、Triangle(三角形), Rectangle(长方形)的柱体类,并计算相应面积。实验记录要求:写出相应代码。五、实验结果分析及实验报告要求分析程序运行结果实验六 接口与实现接口的类一、实验目的1. 理解并掌握接口的概念与应用2. 综合运用面向对象技术二、实验设备和仪器 电脑三、实验内容及要求 1)接口2)模拟洗牌程序四、实验原理及步骤 1)下面以计算机主板、显卡、显卡接口为例说明接口的作用。 我们都知道主板上提供了很多接口,可以将一些硬件插入接口,通过总线与CPU相连,从而进行协调工作。生产这些硬件设备厂商不同,但是无论是哪个厂商生产的产品都应该符合主板上接口的标准。显卡接口代码如下:interface VideoCard void display(); String getName(); 厂商生产的显卡应该实现主板显卡接口的标准,代码如下: class Angda implements VideoCard String name; Angda() name=Angdas videocard; Angda(String name) =name; public void display() System.out.println(Angdas videocard is running); public String getName() return name; 主板的代码: class MainBoard String CPU; VideoCard vc;void setCPU(String CPU) this.CPU=CPU; System.out.println(CPU); void setVideoCard(VideoCard vc) this.vc=vc;System.out.println(vc.getName(); void run() System.out.println(CPU+ is running); vc.display();System.out.println(MainBoard is running); 程序的入口: class Computer public static void main(String args) Angda a=new Angda(); MainBoard m=new MainBoard(); m.setCPU(Intels CPU); m.setVideoCard(a); m.run();2)请定义一个名为Card的扑克牌类,该类有两个private访问权限的字符串变量kind和value;分别描述一张牌的牌面值(如:A、K、Q、J、10、9、3、2等)和花色(如:“黑桃”、“红桃”、“梅花”、“方块”);定义Card类中的public访问权限的构造方法,为类中的变量赋值;定义protected访问权限的方法getValue(),得到扑克牌的牌面值;定义protected访问权限的方法getKind(),得到扑克牌的花色;定义方法toString(),返回表示扑克牌的花色和牌面值字符串(如“红桃A”、“梅花10”等),再定义一个PlayCard类,具有shuffle()实现洗牌的效果。五、实验结果分析及实验报告要求1)理解上述接口程序,说明你对接口作用的理解。2)写出模拟洗牌程序代码,并对关键代码加以解释。实验七 异常的抛出、捕获并处理 一、实验目的了解异常类的作用,掌握对异常的捕获和处理方式,了解包装类的作用和特点以及基本数据类型与包装类的对应关系,掌握包装类的使用方法。二、实验设备和仪器 电脑三、实验内容及要求 1. 编写一个程序,在main()方法中使用try块抛出一个Exception类的对象,为Exception的构造方法提供一个字符串参数,在catch块内捕获该异常并打印出字符串参数。添加一个finally块并打印一条消息。2. 编写一个程序,定义一个static方法methodA(),令其声明抛出一个IOException异常,再定义另一个static方法methodB(),在该方法中调用methodA()方法,在main()方法中调用methodB()方法。试编译该类,看编译器会报告什么?对于这种情况应如何处理?由此可得到什么结论?3. 创建一个自定义的MyException异常类,该类继承Exception类,为该类写一个构造方法,该构造方法带一个String类型的参数。写一个方法,令其打印出保存下来的String对象。再编写一个类,在main()方法中使用try-catch结构创建一个MyException类的对象并抛出,在catch块中捕获该异常并打印出传递的String消息。4. 编写一个应用程序,要求从键盘输入一个double型的圆的半径,计算并输出其面积。测试当输入的数据不是double型数据(如字符串“abc”)会产生什么结果,怎样处理。提示:使用Scanner对象输入数据。如果类型不正确将抛出java.util.InputMismatchException异常。四、实验原理及步骤1、 使用trycatch语句处理异常1.1、 异常类型匹配的处理方式(1) 程序功能:在程序中主动产生一个ArithmeticException 类型被0 除的异常, 并用catch 语句捕获这个异常。最后通过ArithmeticException 类的对象e 的方法getMessage 给出异常的具体类型并显示出来。(2) 程序源代码如下。public class EXP5_1public static void main(String arg3) System.out.println(这是一个异常处理的例子n);try int i=10;i /=0;catch (ArithmeticException e) System.out.println(异常是:+e.getMessage();finally System.out.println(finally 语句被执行);1.2、 异常类型不匹配的处理方式(1) 程序源代码如下。public class EXP5_2public static void main(String args) System.out.println(“这是一个异常处理的例子n”);try int i=10;i /=0;catch (IndexOutOfBoundsException e) System.out.println(异常是:+e.getMessage();finally System.out.println(finally 语句被执行);该程序试图捕获一个异常类为IndexOutOfBoundsException 的异常,但发生的异常却是ArithmeticException 类,所以,程序可以通过编译但在运行时,系统会给出异常报告:报告所发生的但没有被捕获的异常。不过在此之前,其它语句和finally 语句将会被执行。1.3、 包含多个catch子句的异常处理方式(1) 程序功能:在try 子句中设计两个可能出现的异常,当a 为0 时会发生异常。另外一个是肯定的异常,因为数组c 的长度为1,定义c42是为法的。通过两个catch 子句分别来捕获异常。(2) 程序源代码如下。public class EXP5_3pu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国浴珠行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030中国活动管理系统行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国洒水计时器行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030中国法兰浸没式加热器行业市场现状供需分析及投资评估规划分析研究报告
- 物理比热容试题及答案
- 常见药物剂量计算试题及答案
- 母猪饲养要点考试试题及答案
- 税务合同的法律性质试题及答案
- 思维导图助力2025年考试试题及答案
- 二零二五版幼儿园转让合同
- 公司事故隐患内部报告奖励制度
- 大学生创新创业基础(创新创业课程)完整全套教学课件
- 创业思维-创造你喜爱的人生智慧树知到期末考试答案章节答案2024年浙江旅游职业学院
- 100道凑十法练习习题
- 人教版初中阶段语文古诗词理解性背诵默写汇编
- 内蒙古高中毕业生学籍表毕业生登记表学年评语表成绩单身体健康检查表完整版高中档案文件
- 光电效应和普朗克常数测定实验数据表格
- 重力式桥台计算程序表格
- (完整word版)清表施工方案
- 污水池防腐施工方案改
- 公务用车派车单、车辆维修保养申请单(修订版)
评论
0/150
提交评论