Java程序设计实验报告2010.doc

上传人:jian****018 文档编号:9062250 上传时间:2020-04-02 格式:DOC 页数:23 大小:72.50KB
返回 下载 相关 举报
Java程序设计实验报告2010.doc_第1页
第1页 / 共23页
Java程序设计实验报告2010.doc_第2页
第2页 / 共23页
Java程序设计实验报告2010.doc_第3页
第3页 / 共23页
点击查看更多>>
资源描述
数学与系统科学系实验报告 2010 2011学年第一学期 基本信息实验课程Java语言程序设计设课形式非独立课程学分3学分实验项目Java 基本语法练习项目类型验证项目学时2学时实验室名信息与计算数学实验室专业名称信息与计算科学年 级2006级实验班组信息本科学生姓名许星学 号2007同组学生实验日期月日二、实验教师对实验报告的评价及意义实验一 实验项目 Java 基本语法练习(实验日期:月日)三、实验预习实验目的 1.理解 Java 程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。 2通过以上内容,掌握 Java 语言的编程规则。 实验要求1. if.else 语句判断某一年是否为闰年。闰年的条件是符合下面二者之一:能被 4 整除,但不能被 100 整除;能被 4 整除,又能被 100 整除。 2. 使用while语句编写求12+100 之和的源程序实验条件信息与计算数学实验室 号四、实验过程1. 打开一个UltraEdit编辑器,编写判断某一年是否为闰年的源程序:KY2_6.java public class KY2_6 public static void main(String args) boolean leap; int year=2005; if (year%4=0 & year%100!=0) | (year%400=0) System.out.println(year+ 年是闰年); else System.out.println(year+ 年不是闰年); 2. 打开一个UltraEdit编辑器,12+100 之和的源程序:KY2_10.javaclass KY2_10 public static void main(String args) int n=1, sum=0; while (nd.daysInMonth() ) d.day=1; d.month+; if(d.month12) d.month=1; d.year+;rerurn d;public int daysInMonth() switch(month) case 1: case 3: case 5:case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9:case 11: return 30; default : if(year%4=0&year%100!=0|year%400=0) return 29; else return 28;public static void main(String args) Exam3_6 d1=new Exam3_6();System.out.print(”The current date is(year/month/day):”);d1.outDate();System.out.println( );System.out.print(”Its tomorrow date is(year/month/day):”);d1.tomorrow().outDate();System.out.println( );Exam3_6 dd=new Exam3_6(2004,1,8);System.out.print(”The current date is(year/month/day):”);dd.outDate();System.out.println( );System.out.print(”Its tomorrow date is(year/month/day):”);dd.tomorrow().outDate();System.out.println( );五数据处理和实验结论运行结果The current date is (year/month/day):2000/1/1Its tomorrow is (year/month/day):2000/1/2The current date is (year/month/day):2004/1/8Is tomorrow is (year/month/day):2004/1/9六、 结果分析与讨论对象在使用之前一定要先创建对象在创建的过程中会通过构造方法对对象的变量进行初始化实验三 实验项目 静态变量和静态方法(实验日期:月日)三、实验预习实验目的 1.掌握静态变量的使用。 2.掌握静态方法的使用。实验要求 运行下面程序,分析其输出结果。实验条件信息与计算数学实验室 号四、实验过程public class A int a; static int b; void setab(int i) a=i; b=i+1 int geta() return a; static void setb(int i) b+=i; static int getb( ) return b; public class Exam3_7 public static void main(String args) A x=new A(); A y=new A(); x.setab(5); y.setab(10); System.out.println(“x.a=”+x.geta()+”,y.a=”+y.geta(); x.setb(-5); y.setb(-10); System.out.println(“x.b=”+x.getb()+”,y.b=”+y.getb();五数据处理和实验结论1运行结果x.a=5,y.a=10x.b=-4,y.b=-4六、 结果分析与讨论 静态变量保存在类的公共内存单元中,任何一个对象都可以访问它修改它。可以通过类名访问,也可以通过对象名访问。静态方法是属于整个类的,在内存中的代码是随着类的定义而进行分配的,不被某个对象所专有。主要使用类名访问。实验四 实验项目 包与访问控制权限(实验日期:月日)三、实验预习实验目的 1. 掌握包的创建和引用;2. 掌握访问控制权限;实验要求1. 编写三个类,并将类添加到不同包中,其中一个类引用另外两个类。2. 验证类成员的访问控制权限。信息与计算数学实验室 号四、实验过程/A.javapackage pkg1;public class A int a,b; public void setab(int i, int j) a=i; b=j; public void printab() int sum=a+b; System.out.println(“a+b=”+sum);/B.javapackage pkg1.pkg2;public class B int x,y; public void setxy(int i, int j) x=i; y=j; public void printxy() int product=x*y; System.out.println(“x*y=”+product);/Exam3_24.javaimport pkg1.A;import pkg1.pkg2.B;class Exam3_24 public static void main(String args) A obja=new A(); obja.setab(3,5);obja.printab( );B objb=new B(); objb.setxy(3,5);objb.printxy( );五数据处理和实验结论在DOS命令提示符下输入: javac Exam3_24.java java Exam3_24输出:a+b=8 x*y=15六、 结果分析与讨论如果一个类访问另一个包中的类,必须通过包来引用, 引用方法是在声明该类前,使用import语句.实验五 实验项目 类的继承与多态(实验日期:月日)三、实验预习实验目的 1. 掌握类的继承机制;2. 掌握变量隐藏及方法覆盖; 3. 理解子类构造方法与父类构造方法的关系;4. 理解动态多态的概念。实验要求编写父类及子类,在子类中完成对父类的继承、子类对父类变量隐藏和子类对父类方法覆盖,编写测试类对子类的继承及变量隐藏和方法覆盖进行验证实验条件信息与计算数学实验室 号四、实验过程class A int a=10; void print() System.out.println(“class A”);class B extends A char a=m;void print() System.out.println(“class B”); void printB() super.printT(); print(); System.out.println(a);System.out.println(super.a);public class Test public static void main(String args) B b=new B(); b.printB(); 五数据处理和实验结论在DOS命令提示符下输入: javac C.java java C输出:class A class B m 10六、 结果分析与讨论类A和类B中有一个同名变量a,一个是int型,一个是 char型。在B中的printB()方法中,参数a表示类B中的成员变量a;参数super.a表示类A中的成员变量a.在子类B中对父类A中的printT方法进行了方法覆盖。实验六 实验项目 Applet小程序应用(实验日期:月日)三、实验预习实验目的1. 熟悉Applet类。2. 掌握applet的程序结构3. 学会编写启动applet程序的html文档;4. 观察applet程序的生命周期;实验要求 编写applet程序1,显示init()、start()、stop()和destroy()方法的执行。实验条件信息与计算数学实验室 号四、实验过程import java.applet.Applet;import java.awt.*;public class Myapplet extends Applet private Label a;public void init() System.out.println(Applet:init();public void start() System.out.println(Applet:start(); a=new Label(Hello!); add(a); public void stop() System.out.println(Applet:stop(); remove(a); public void destroy() System.out.println(Applet:destroy();五数据处理和实验结论在DOS命令提示符下输入: javac Myapplet.java appletviewer Myapplet.html打开applet小程序浏览器,显示:Hello!同时在DOS命令提示符下显示:Applet:init() Applet:start()六、 结果分析与讨论Applet小程序的生命周期中有四个状态:初始态、运行态、停止态和消亡态,分别对应Applet类的四个方法:init()、start()、stop()和destroy()。其中init()方法和destroy()方法只执行一次,start()和stop()执行多次。实验七 实验项目 Applet小程序应用(实验日期:月日)三、实验预习实验目的1. 掌握使用Applet显示图像。2. 掌掌握使用Applet播放声音实验要求编写Applet程序,在屏幕上显示一幅图像”Winter.jpg“,并播放一首音乐”music.wave“使其作为背景音乐重复播放,在关闭Web页面或者最小化Web页面时停止。实验条件信息与计算数学实验室 号四、实验过程import java.applet.Applet;import java.applet.AudioClip;import java.*;public class Exam4_15 extends Applet Image pic; int w,h; AudioClip mymusic;public void init()mymusic=getAudioClip(getDocumentBase(),Tom.mid);public void paint(Graphics g) Image pic=getImage(getDocumentBase(),zm.jpg); int w=pic.getWidth(this); int h=pic.getHeight(this);g.drawImage(pic,10,30,(int)(w*0.3),(int)(h*0.3),this); public void start( ) mymusic.loop(); public void stop( ) mymusic.stop();五数据处理和实验结论在DOS命令提示符下输入: javac Exam4_15.java appletviewer Exam4_15.html打开applet小程序浏览器,显示:一幅图像并伴有背景音乐。六、 结果分析与讨论在Applet小程序中使用了loop方法后,即使关闭播放声音的Web页面,声音也不会停止,需在Applet小程序中使用stop方法。实验八 实验项目 多线程(实验日期:月日)三、实验预习实验目的1. 掌握使用Thread创建线程的方法 。2. 掌握使用Runnabl创建线程的方法实验要求 分别使用继承Thread类和实现Runnable接口的方法编写一个应用程序,创建三个线程分别显示各自的线程名与当前时间,要求三个线程的线程名分别为:A,B,C,三个线程在输出各自内容之后均休眠1000毫秒。 实验条件信息与计算数学实验室 号四、实验过程(1) 使用继承Thread类的方法编写程序import java.util.Date;class TimePrinter extends Thread public TimePrinter(String str) super(str); public void run( ) /定义run()方法 try System.out.println(getName()+:+new Date(System.currentTimeMillis(); sleep(1000);catch(InterruptedException e) System.out.println(e); public static void main (String args ) TimePrinter mt= new TimePrinter(A); mt.start(); new TimePrinter(B).start(); new TimePrinter(C).start(); (2) 使用实现Runnable接口的方法编写程序import java.util.Date;class TimePrinter2 implements Runnable String name; public TimePrinter2(String str) name=str; public void run( ) /定义run()方法 try System.out.println( name+:+new Date(System.currentTimeMillis(); Thread.sleep(1000);catch(InterruptedException e) System.out.println(e); public static void main (String args ) TimePrinter2 mt=new TimePrinter2(A); Thread t= new Thread(mt); t.start(); new Thread(new TimePrinter(B).start(); new Thread(new TimePrinter(C).start(); 五数据处理和实验结论(1)在DOS命令提示符下输入: javac TimePrinter.java java TimePrinter 在DOS命令提示符下按某种顺序显示三个线程:A,B,C的输出结果, (2)在DOS命令提示符下输入: javac TimePrinter2.java java TimePrinter2 在DOS命令提示符下按某种顺序显示三个线程:A,B,C的输出结果,六、 结果分析与讨论使用两种创建线程两种方法的任何一种方法创建线程程序都必须覆盖run( )方法由Thread的构造方法所创建的线程对象,不能自动运行,必须调用start()方法才能真正启动该线程。
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!