




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录实验一、Java程序的编辑、编译和运行,java控制语法2实验二、java的类6实验三、J继承与接口18实验四、Java布局管理和java的事件11实验五、Java IO与异常处理18实验一、Java程序的编辑、编译和运行,java控制一、 实验目的:1. 掌握使用JDK开发Java程序的步骤(编辑、编译、运行)。2. 掌握Java程序的基本结构。3. 掌握JDK环境的使用方法。二、 实验要求:编写一个简单的Java应用程序,输出两句话:“Hello, World!”“This is the first Java program.”三、 实验内容:1. 创建目录D:你的学号。把这个目录作为我们的工作目录。我们的Java源程序、编译后的字节码文件和用来运行Java Applet的html文件都放在这个目录中。2. 在命令行窗口下输入java version 查看JRE的版本。 3. 启动附件中记事本工具。4. 在记事本编辑如下源程序:public class Ex1public static void main( String args )System.out.println(Hello, World!);System.out.println(This is the first Java program.);5. 保存程序。注意,保存源程序时,程序名要与主类名一致。即要用Ex1.java作为本程序的文件名。(记事本默认的扩展名是*.txt,要改为*.java)。把该文件保存到第一步所建的目录中(即D:你的学号)。6. 编译程序。启动MS_DOS窗口,键入如下命令:(假如你的学号是410808,即你建的目录为D:410808)C:WINDOWSd:D:cd 410808D:410808javac Ex1.java如果编译成功,则在D:410808目录中生成字节码文件Ex1.class。7. 运行程序。D:410808java Ex1就可以运行程序。注意:Ex1是上一步编译生成的Ex1.class,文件名有大小写区别。8. 观察程序输出的结果是否与实验要求相符。9. 输入和调试一下程序。import java.text.SimpleDateFormat;import java.util.Date;public class TestDate public static void main(String args) Date myDate=new Date(System.currentTimeMillis(); System.out.println(myDate.toString(); SimpleDateFormat sDateFormat=new SimpleDateFormat(yyyy/MM/dd HH:mm:ss ); System.out.println(sDateFormat.format(myDate); 流程控制一、实验目的:1. 熟练掌握if语句和switch语句。2. 学会使用合适的表达式描述问题。3. 熟练使用while、do-while、和for语句实现循环的方法。4. 掌握在程序设计中用循环的方法实现各种算法。二、实验要求:编写一个含有分支控制结构的Java应用程序。三、实验内容:3.1 分支控制结构1. 编写一个成绩转换的java程序。其对应关系如下:分数转换后的输出结果059不及格6069及格7079中8089良90100优其它错误2. 在记事本编辑如下源程序:public class Ex2public static void main( String args )int score =70;if(score=0)&(score=60)&(score=70)&(score=80)&(score=90)&(score=100)System.out.println(优);elseSystem.out.println(错误); 3. 保存程序Ex2.java,编译程序,并运行程序,查看结果。4. 修改score变量的初始值(0、59、60、79、80、99、105),重新编译运行,查看结果是否正确。5. switch语句替代if-else语句,并重新编译运行程序,再重复第4步,测试程序是否正确。3.2循环控制结构 1. 编写一个成绩统计的java程序。先在数组中定义5个学生的成绩,再求出平均成绩,最后找出最高分。2. 在记事本编辑如下源程序:public class Ex3public static void main( String args )int score=60,76,90,48,80;int sum =0;int max =0;for(int i=0;imax)max =scorei;double average =(double)sum /5;System.out.println(Average =+average);System.out.println(Max =+max);3. 保存程序Ex3.java,编译运行程序,观察程序的运行结果,体会for循环语句的执行流程。4. 用while语句替代for语句,找出最低分,并重新编译运行程序。5. 用do-while语句替代for语句,找出最低分,并重新编译运行程序。6. 用循环语句对5个学生的成绩排序,并按从小到大的顺序输出。实验二、java的类一、实验目的:1. 掌握如何定义类以及类的成员变量、类的方法。2. 掌握对象的创建、对象属性的引用和方法的调用。3. 理解成员的访问权限。4. 掌握如何定义和使用构造方法。5. 掌握this的使用。6. 掌握关键字static、final的使用方法。7. 掌握构造方法的重载。8. 掌握派生子类的方法。9. 理解关键字super的含义。10. 理解继承中属性的隐藏和方法的覆盖机制。11. 掌握instanceof运算符的用法。12. 区别重载和覆盖。13. 理解在继承关系中构造方法的调用过程二、实验要求:1.编写一个含有简单类定义的Java应用程序。2. 编写一个含有多个构造方法的类的Java应用程序。三、实验内容:3.1 简单类1. 定义一个学生类,它包括几个属性:学号(ID)、姓名(Name)、年龄(Age)、性别(Sex)。在main方法中创建一个学生类的对象,然后给这个对象赋初值,最后输出该学生的属性。2. 在记事本编辑如下源程序:class Student public int ID;public String StuName;public int Age;public boolean Sex;class Ex4 public static void main(String args) / TODO: Add your code hereStudent stu =new Student();stu.ID =410808;stu.StuName =王杰;stu.Age =21;stu.Sex =true;System.out.println(学号+t+姓名+t+年龄+t+性别);System.out.println(stu.ID+t+stu.StuName+t+stu.Age+t+(stu.Sex?男:女);3. 保存程序Ex4.java,编译程序,并运行程序,查看结果。4. 把Student类中所有的成员变量的访问权限由public分别改为private、private protected、protected,保存并重新编译程序,看会出现什么结果。5. 改写Student类,把Student类中所有的成员变量的访问权限由public改为private,并为每个成员变量定义两个方法,(如对于StuName属性,分别定义SetName(String n)、GetName()),使之通过Student类的方法来访问其成员变量。修改main方法的内容,使修改后的程序输出相同的结果3.2 类的构造1. 定义一个点(Point)类,它包含横坐标x和纵坐标y两个属性,再给Point定义两个构造方法。2. 定义一个圆(Circle)类,它包含圆心(Center)和半径(Radius)两个属性,再给圆定义4个构造方法和一个打印圆的面积的方法。3. 在main方法中分别用4种不同的方法构造圆,并打印出圆的面积。4. 在记事本编辑如下源程序:class Pointprivate int x;private int y;Point()SetXY(0,0);Point(int a,int b)SetXY(a,b);public int GetX() return x;public int GetY() return y;public void SetXY(int a, int b) x =a;y =b;class Circlefinal double PI =3.1415926;privatePoint Center;private intRadius;Circle() Center =new Point();Radius =5;Circle(Point Center) Radius =5;this.Center =Center;Circle(int Radius) this.Radius =Radius;Center =new Point();Circle(Point Center, int Radius) this(Center);this.Radius =Radius;public void PrintArea() double area =PI*Radius*Radius;System.out.println(*);System.out.println(Center =(+Center.GetX()+, +Center.GetY()+), +Radius =+Radius+, +Area =+area);System.out.println(*);public class Ex5 public static void main(String args) / TODO: Add your code herePoint center =new Point(2,2);int radius =3;Circle cir1 =new Circle();cir1.PrintArea();Circle cir2 =new Circle(center);cir2.PrintArea();Circle cir3 =new Circle(radius);cir3.PrintArea();Circle cir4 =new Circle(center,radius);cir4.PrintArea();5. 保存程序Ex5.java,编译程序,并运行程序,查看分析结果。6. 分析用4种不同方法构造圆的执行过程。7. 在main方法中语句“cir1.PrintArea();”后面加入一条语句“cir1.PI =2;”,保存程序,并重新编译,会出现什么问题?8. 将语句“this(Center);”改为“Circle(Center);”,保存程序,并重新编译,会出现什么问题?理解this关键字的不同用法。3.3 类的继承 1. 定义一个点(Point)类,它包含横坐标x和纵坐标y两个属性,再给Point定义两个构造方法和一个打印点坐标的方法(Show())。2. 定义一个圆(Circle)类,它继承Point类(它是一个点,圆心(Center),除此之外,还有属性半径(Radius),再给圆定义2个构造方法、一个打印圆的面积的方法(PrintArea())和一个打印圆中心、半径的方法(Show())。3. 在记事本编辑如下源程序:class Pointprotected int x;protected int y;Point()SetXY(0,0);Point(int a,int b)SetXY(a,b);public int GetX() return x;public int GetY() return y;public void SetXY(int a, int b) x =a;y =b;public void Show() if(this instanceof Circle)System.out.println(中心: +(+x+, +y+);elseSystem.out.println(点: +(+x+, +y+);class Circle extends Pointfinal double PI =3.1415926;protected intRadius;Circle() Radius =5;Circle(Point Center, int Radius) super(Center.GetX(),Center.GetY();this.Radius =Radius;public void PrintArea() double area =PI*Radius*Radius;System.out.println(*);System.out.println(面积:+area);System.out.println(*);public void Show() super.Show();System.out.println(半径: +Radius);public class Ex6 public static void main(String args) Point center =new Point(2,2);center.Show();int radius =3;Circle cir1 =new Circle();cir1.Show();cir1.PrintArea();Circle cir4 =new Circle(center,radius);cir4.Show();cir4.PrintArea();4. 保存程序Ex6.java,编译运行程序,观察并分析程序的运行结果。5. 去掉语句“super.Show();”,再看看运行结果。理解程序中多太性的运用。6. 在语句“SetXY(0,0);”和语句“SetXY(a,b);”添加一条语句“System.out.println(构造点(+x+, +y+);”,在语句“Radius =5;”和语句“this.Radius =Radius;”添加一条语句“System.out.println(构造圆(半径: +Radius+);”,重新编译运行程序,观察并理解所得到的结果,从而理解在继承关系中构造方法的调用过程。实验三、类的继承与接口一. 实验题目1) 为上一实验中的矩形类派生一个子类:正方形类。若正方形类的操作同样是求周长和面积,则这个字类除了从父类继承来的方法之外,还需要定义哪些方法。列出正方形类的所有域和方法。编程检查、运行所编写的正方形类。2) 定义接口Printable, 其中包括一个方法printItMyWay(),这个方法没有形参,返回值为空。3) 改写矩形类,使之实现Printable接口,用printItMyWay()方法将矩形的相关信息(长,宽,周长,面积)打印在屏幕上。4) 改写正方形类,重载printItMyWay()方法,将正方形的边长、周长,面积打印在屏幕上。5) 在Printable接口中增加一个新的printItMyWay(char)方法,这个方法有一个字符类型的形参,返回值为空。其功能是利用给出的字符打印,例如若给定的字符为#,一个长为5,宽为3的矩形的屏幕打印结果为:#6) 在矩形类和正方形类中实现该方法.7)将矩形和正方形组成一个包MyFigures.二. 源程序(包含注释)package MyFigures;/*public class square extends rectangleint length;int squareGirth()return length * 4;int squareArea()return length * length;*/public class square implements Printableint length;int squareGirth()return length * 4;int squareArea()return length * length;public void printItMyWay()System.out.println( The length is + length );System.out.println( The girth is + squareGirth() );System.out.println( The area is + squareArea() );public void printItMyFigure( char c )for( int i = 0; i length; i+ ) /行循环for( int j = 0; j length; j+) /列循环System.out.print( c ); /打印c字符 System.out.println( ); /每行末尾换行package MyFigures;public interface Printable void printItMyWay(); void printItMyFigure ( char c );package MyFigures;/*public class rectangle /长方形类public int length;public int width;public int findGirth ()return ( length + width ) * 2;public int findArea()return length * width;*/public class rectangle implements Printable /修改的长方形类public int length;public int width;public int findGirth ()return ( length + width ) * 2;public int findArea()return length * width;public void printItMyWay() /打印System.out.println( The length is + length );System.out.println( The width is + width );System.out.println( The girth is + findGirth() );System.out.println( The area is + findArea() );public void printItMyFigure( char c )for( int i = 0; i width; i+ ) /行循环for( int j = 0; j length; j+) /列循环System.out.print( c ); /打印c字符 System.out.println( ); /每行末尾换行三. 实验总结:说明源程序的结构说明用到了那些系统包, 类, 函数说明调试过程出现什么错误,如何进行改正为上一实验中的矩形类派生一个子类:正方形类。若正方形类的操作同样是求周长和面积,则这个字类除了从父类继承来的方法之外,还需要定义哪些方法。列出正方形类的所有域和方法。编程检查、运行所编写的正方形类。定义接口Printable, 其中包括一个方法printItMyWay(),这个方法没有形参,返回值为空。改写矩形类,使之实现Printable接口,用printItMyWay()方法将矩形的相关信息(长,宽,周长,面积)打印在屏幕上。改写正方形类,重载printItMyWay()方法,将正方形的边长、周长,面积打印在屏幕上。在Printable接口中增加一个新的printItMyWay(char)方法,这个方法有一个字符类型的形参,返回值为空。其功能是利用给出的字符打印,例如若给定的字符为#,一个长为5,宽为3的矩形的屏幕打印结果为:#在矩形类和正方形类中实现该方法.将矩形和正方形组成一个包MyFigures.实验四、Java布局管理和java的事件一、实验目的:1. 掌握Java语言中几种布局管理器。2. 能熟练综合运用这几种布局管理器设计复杂的图形界面。3. 理解事件的概念。4. 能熟练使用Java提供的事件处理方法,进行符合要求的事件处理二、实验要求:结合多种布局管理器设计一个复杂的图形界面。掌握Java提供的各种事件接口,并能灵活使用。三、实验内容:3.1 Java布局管理 容器中组件的位置和大小通常由布局管理器决定。每个容器都有一个默认的布局管理器。当容器被创建后,可以通过特定的方法改变容器的布局管理器。1. 用BorderLayout和GridLayout布局管理器设计一个如下图所示的图形界面:2. 在记事本编辑如下源程序:import java.awt.*;public class Ex9_1 private Frame demoframe;privateButton b1;privateButton b2;privateButton b3;privateButton b4;private Panel cpanel;private Button b;public void Init() demoframe =new Frame(布局管理器);b1 =new Button(确定);demoframe.add(b1,East);b2 =new Button(取消);demoframe.add(b2,West);b3 =new Button(Hello,);demoframe.add(b3,North);b4 =new Button(Java!.);demoframe.add(b4,South);cpanel =new Panel();cpanel.setLayout(new GridLayout(3,3,7,7);demoframe.add(cpanel,Center);b =new Button9;for(int i=0;i9;i+)bi =new Button();bi.setSize(50,50);bi.setLabel(Integer.toString(i);cpanel.add(bi);demoframe.pack();demoframe.setVisible(true);public static void main(String args) Ex9_1 demo =new Ex9_1();demo.Init();3. 保存程序Ex9_1.java,编译运行程序。理解BorderLayout和GridLayout布局管理器的用法。4. 结合上述例子,试编写如下图所示的图形界面:3.2 Java事件Java中的每种事件类都有一个对应的接口,接口中声明了一个或多个抽象的事件处理方法,凡是需要接收并处理事件对象的类,都需要实现相应的接口。1. 当用户点击按钮时,AWT事件处理系统将向按钮发送一个ActionEvent事件对象。如果应该程序需要对此作为反应,那么就需要为按钮注册事件监听程序并实现ActionListenner接口。在记事本编辑如下源程序:import java.awt.*;import java.awt.event.*;public class Ex10_1 implements ActionListenerprivate Frame f;private Button b;private Label lb;public static void main(String args) Ex10_1 demo =new Ex10_1();demo.Init();public void Init() f =new Frame(Action Event);b =new Button(确定);lb =new Label(你好!,Label.CENTER);f.add(lb,North);b.addActionListener(this);f.setSize(150,100);f.add(b,South);f.setVisible(true);public void actionPerformed(ActionEvent parm1) lb.setText(你点击了确认按钮!);2. MouseMotionListener接口中提供声明了mouseDragged()和mouseMoved()两个抽象方法,分别用于处理鼠标的拖动和移动。MouseListener接口声明了mouseEntered()、mouseExited()、mousePressed()、mouseReleased()和mouseClicked()五个抽象方法。在记事本编辑如下源程序,编译并运行,体会这几种方法的不同之处:import java.awt.*;import java.awt.event.*;public class Ex10_2 implements MouseMotionListener,MouseListenerprivate Frame f;private Label t1,t2;public static void main(String args) Ex10_2 demo =new Ex10_2();demo.Init();public void Init() f =new Frame(Action Event);t1 =new Label(Java,Label.CENTER);t2 =new Label(你好!,Label.CENTER);f.add(t1,North);f.add(t2,South);f.addMouseListener(this);f.addMouseMotionListener(this);f.setSize(300,200);f.setVisible(true);public void mouseClicked(MouseEvent parm1) t1.setText(你点击了鼠标!);public void mousePressed(MouseEvent parm1) t1.setText(你按下了鼠标!);public void mouseReleased(MouseEvent parm1) t1.setText(你释放了鼠标!);public void mouseEntered(MouseEvent parm1) t1.setText(鼠标进入!);public void mouseExited(MouseEvent parm1) t1.setText(鼠标退出!);public void mouseDragged(MouseEvent parm1) t2.setText(你在拖动鼠标:X=+parm1.getX()+ Y=+parm1.getY();public void mouseMoved(MouseEvent parm1) t2.setText(你在移动鼠标:X=+parm1.getX()+ Y=+parm1.getY();3. 给程序添加按ESC键退出的功能。4. 根据上述示例,试编写其他实现其他事件接口的程序,如WindowListener、KeyListener等。实验五、Java IO与异常处理一、实验目的:1. 掌握数据流的基本概念。2. 掌握多种读取/写入数据的方法3. 掌握异常的基本概念。4. 理解异常处理机制。5. 掌握创建自定义异常的方法。二、实验要求:1. 编写一个有异常处理的Java应用程序。2. 编写一个含有读取/写入数据的Java应用程序三、 实验内容: 3.1 异常处理机制Java提供了异常处理机制,当程序中发生异常时,程序产生一个异常事件,相应地生成异常对象。系统从生成对象的代码开始,沿方法的调用栈逐层回溯,寻找相应的处理代码,并把异常对象交给该方法处理。1. 在记事本编辑如下源程序:public class Ex7_1 public static void main(String args) String output =The ,quick ,brown ,fox ,jumps ,over ,the ,lazy ,dog.;int i =0;while(i12)System.out.print(outputi+);System.out.println(haha.);2. 保存程序Ex7_1.java,编译运行程序,观察并分析程序的运行结果。The quick brown fox jumps over the lazy dog.Exception in thread main java.lang .ArrayIndexOutOfBoundsException at Ex7_1.main(Ex7_1.java:9),可以看出,在第9行出现了数组下标越界的异常,导致了程序的中止,而程序的最后一条语句“System.out.println(haha.);”没有执行。3. 我们
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度房地产代理合同大全:特色小镇项目招商代理
- 2025年金融代签合同委托书专业范本
- 2025年货运司机服务外包合作协议书
- 2025版供应链金融三方担保贷款合同
- 2025版水泥企业节能减排技术改造采购合同
- 2025电梯维保安全协议书-电梯安全维保与绿色出行倡议合同
- 2025版企业补充养老保险应收账款质押贷款协议
- 2025年度企业媒体广告投放策略咨询合同
- 2025版茶饮店品牌合作与经营管理协议下载
- 2025年智能农业管理系统研发合作框架协议
- 呼吸机波形分析
- 19.《只有一个地球》-课前预习单-小学语文六年级上册课前
- 高中英语:倒装句专项练习(附答案)
- 【新教材】部编版小学道德与法治四年级上册-全册课件
- DB65-T 4762-2023 油田地面工程建设节能技术规范
- 2024至2030年中国智慧用电产业“十四五”市场预测与发展规划分析报告
- 输血治疗中的大数据分析
- 《旅游经济学(第3版)》全套教学课件
- 大学生心理健康与发展(高等院校心理健康教育)全套教学课件
- 人教版高一下学期期末考试数学试卷与答案解析(共五套)
- 《福建省建筑工程施工文件管理规程2》
评论
0/150
提交评论