收藏 分享(赏)

《Java程序设计》实验指导书.doc

上传人:jinchen 文档编号:7050269 上传时间:2019-05-04 格式:DOC 页数:11 大小:73.50KB
下载 相关 举报
《Java程序设计》实验指导书.doc_第1页
第1页 / 共11页
《Java程序设计》实验指导书.doc_第2页
第2页 / 共11页
《Java程序设计》实验指导书.doc_第3页
第3页 / 共11页
《Java程序设计》实验指导书.doc_第4页
第4页 / 共11页
《Java程序设计》实验指导书.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、Java 程序设计实验指导书实验一、熟悉 JDK 环境及主要命令一、实验目的1)熟悉 JDK 的环境配置2)掌握 JDK 的命令3)掌握 Java Application 程序的开发过程,并编写一个 Java Application 程序二、实验内容1按照上课所学知识,为自己的机器配置环境变量2编辑一个 Hello World 的小程序,并试着编译运行它3将 Vehicle 和 VehicleDriver 两个文件用自己的文本编辑器重新编辑并编译运行,掌握类和对象的定义和使用1)Vehicle.java (注意:以下代码有几个错误的地方,需要同学自己把他们找出来并更正过来)public cla

2、ss Vehiclepublic float journey; public int wheelNum; public int loadNum; public int driveSpeed; /*Vehicle 类构造函数,设定初始值*/public Vehicle()journey=100.3f;wheelNum=4;loadNum=1;/*Vehicle 类的 driveAt 行驶方法*/public void driveAt(int speed)if (speed=60)System.out.println(“行车速度太快,容易造成事故“);/如果要求的车速太快,则机动车自动以 40 单

3、位速度行驶driveSpeed=40;else System.out.println(“你在安全行驶速度内行驶“);driveSpeed=speed;2)VehicleDriver.javapublic class VehicleDriverpublic String name; /定义司机的名字/*VehicleDriver 类构造函数 */public VehicleDriver()name=“TOM“;/*VehicleDriver 类对象的 work 方法*/public void work()Vehicle v=new Vehicle(); /生成 Vehicle 类的对象 vv.d

4、riveAt(70); /调用 v 对象所固有的 driveAt()方法public static void main(String args)/生成 VehicleDriver 类的对象 vbVehicleDriver vd=new VehicleDriver();vd.work(); /调用 vd 对象所固有的 work()方法3将 Vehicle 和 VehilceDriver 两个类放在一个.java 文件中,文件名称取名为Vtogether.java (注意:需将 Vehicle 或 VehicleDriver 中某一个类的名称改名为 Vtogether,具体更改哪一个由同学根据实际

5、情况来判断) ,编译和运行该文件实验二、类的定义和对象的使用一、实验目的1)掌握类的定义2)掌握对象的使用3)掌握构造方法的重载二、实验内容1创建一个汽车类 CarModel.java,它里面有 2 个不同的构造函数,CarManufactory.java 可以应用这些构造方法创建不同类型的汽车CarModel.java 设计要求如下: 定义 style(String),color(String),category(String)注:括号中为变量类型 创建第一个构造函数,分别给以上变量赋值,要求为该构造函数定义三个形参,分别赋给相应的变量,形参的值在对象创建时给出 创建第二个构造函数,此构造函

6、数过程为空 定义三个方法,分别返回 style,color,category 的值CarManufactory.java 设计要求如下:使用不同的构造函数创建两辆汽车显示两辆车相关的属性,属性的值要从 CarModel 的相关方法中取出2判断以下程序的结果,并把它改成两个类的形式,其中一个类专门处理运算。public class Excerpublic static void main(String args)Excer ex=new Excer();ex.math();void math()int x=130,y=45;System.out.println(“x=“+x+“ ,y=“+y);

7、System.out.println(“x+y=“+plus(x,y);System.out.println(“x-y=“+minus(x,y);System.out.println(“x*y=“+multi(x,y);System.out.println(“x/y=“+div(x,y);int plus(int a,int b)return(a+b);int minus(int a,int b)return(a-b);int multi(int a,int b)return(a*b);float div(int a,int b)return (float)a/b);实验三、继承一、实验目的1

8、)掌握类的继承2)掌握类成员的覆盖和重载二、实验内容1Vehicle 类的基础上创建一个 Tractor(拖拉机)类,他不但拥有journey,wheelNum,loadNum,driveSpeed 四种属性和 driveAt()方法,而且还拥有自己的 plough(耕地) 方法,在该方法中要求能够显示 journey, wheelNum, loadNum 三个属性的值,在 Tractor 中覆盖 driverAt()方法,速度大于等于 35 就认为是超速,如果是超速速度就要设为 20,在这个类中还要创建一个 main()方法,分别调用 plough()、 driveAt 方法和 Vehicl

9、e 类的 driverAt()方法。public class Vehiclepublic float journey; public int wheelNum; public int loadNum; public int driveSpeed; public Vehicle()journey=100.3f;wheelNum=4;loadNum=1;public void driveAt(int speed)if (speed=60)System.out.println(“行车速度太快,容易造成事故“);/如果要求的车速太快,则机动车自动以 40 单位速度行驶driveSpeed=40;els

10、e System.out.println(“你在安全行驶速度内行驶“);driveSpeed=speed;2在以下程序中出现了属性的覆盖和方法的重载,编译运行下面程序,掌握产生属性覆盖时属性的变化规则和方法的重载时调用的方法规则。class NoteX public static final int MIDDLE_C = 0;public static final int C_SHARP = 1;public static final int C_FLAT = 2;public class Fatherint a=100;public void miner()a-;public void pl

11、ay(int NoteX) System.out.println(“Father.play()“);public static void main(String arg)Father x=new Father();Son y=new Son();System.out.println(“a of son is :“ +y.a);System.out.println(“a of sons super is :“ +y.getA();y.miner();System.out.println(“a of son is :“+y.a);System.out.println(“a of sons supe

12、r is :“ +y.getA();y.play(NoteX. C_SHARP);y.play(new NoteX();class Son extends Father int a=0;public int getA()return super.a;public void play(NoteX n) System.out.println(“Son.play(NoteX n)“);实验四、接口与内部类一、实验目的1)、掌握接口的定义和使用方法2)、掌握内部类的定义和使用方法二、实验内容1将以下图示用接口实现和继承实现2 已知有两个接口如下所示,要求定义一个类,其中包含两个内部类,这两个内部类分别

13、实现这两个接口,且设为 private,在类中分别定义两个方法,可以返回这两个接口。public interface Destination String readLabel(); public interface Contents int value();实验五、异常的处理机制一、实验目的1)掌握异常的声明interfac Instrumetvodply();Sigwh jtWindvoi play()Strgwhtjus Stringedvo play()iwhtjusWodwinvi play()StrghtBrasvoid ply()jutPercusionvid play()Stgw

14、htjextnextsimletsimltimlts2)掌握异常的抛出3)掌握异常的捕获4)掌握自定义异常的使用二、实验内容1编写一段 Java 程序,在被调用方法中抛出一个异常对象,并将异常交给调用它的方法来处理2编写一段 Java 程序,创建一个自定义异常类,并在一个方法中抛出自定义异常对象,在该方法的 catch 处理程序中捕获它并重新抛出,让调用它的方法来处理。实验六、多线程编程一、实验目的1)了解多线程的定义2)理解多线程的互斥和同步3)掌握多线程的调度和控制二、实验内容1使用 Runnable 接口实现以下类的功能:public class testThread extends T

15、hreadpublic testThread()public void run()System.out.println(“run()方法运行“);public static void main(String arg)testThread t=new testThread();System.out.println(“start() 开始运行.“);t.start();2假设一个银行的 ATM 机,它可以允许用户存款也可以取款。现在一个账户上有存款 200 元,用户 A 和用户 B 都拥有在这个账户上存款和取款的权利。用户 A 将存入 100 元,而用户 B 将取出 50 元,那么最后账户的存款应

16、是 250 元。实际操作过程如下: 先进行 A 的存款操作:(1) 得到账户的存款数额 200,耗时 2s。(2) 将账户数额增加 100,耗时忽略不计(3) 将新生成的账户结果 300 返回到 ATM 机的服务器上,耗时 2s 在进行 B 的取款操作: (4)得到增加后账户存款数额 300,耗时 2s。(5)将账户数额减少 50,耗时忽略不计。(6)将新生成的账户结果 250 返回到 ATM 机的服务器上,耗时 2s。请同学们根据以上要求,编写一个 Java 程序实现该功能注:将 A 的操作和 B 的操作分别用线程来表示3.如下是消费者和生产者的一个简化例子,将次程序看懂,然后写下运行结果。

17、/CubbyHole.java 存储数据public class CubbyHole private int contents;private boolean available = false;public synchronized int get() while (available = false) try wait(); catch (InterruptedException e) System.out.println(“Customerer “ + “goe: “ + contents);available = false;notifyAll();return contents;pu

18、blic synchronized void put(int value) while (available = true) try wait(); catch (InterruptedException e) System.out.println(“Producer “ + “put “ + value);contents = value;available = true;notifyAll();/ Producer.java 生产者public class Producer extends Thread private CubbyHole cubbyhole;public Producer

19、(CubbyHole c) cubbyhole = c;public void run() for (int i = 0; i 10; i+) cubbyhole.put(i);/ Consumer.java 消费者public class Consumer extends Thread private CubbyHole cubbyhole;public Consumer(CubbyHole c) cubbyhole = c;public void run() int value = 0;for (int i = 0; i 10; i+) value = cubbyhole.get();/测

20、试程序public class ProducerConsumerTest public static void main(String args) CubbyHole c = new CubbyHole();Producer p1 = new Producer(c);Consumer c1 = new Consumer(c);p1.start();c1.start();实验七、输入输出字节流一、实验目的1)、掌握输入字节流的操作2)、掌握输出字节流的操作二、实验内容1定义一个字节数组,将其输出到屏幕上2将一个图片的内容读取到字节数组当中 实验八、输入输出字符流一、实验目的1)、掌握输入字符流的

21、操作2)、掌握输出字符流的操作二、实验目的1从键盘输入一串字符,将其输出到屏幕上2将一个文本文件输出到屏幕上实验九、文件及其文件流一、实验目的1)、掌握文件的操作2)、掌握文件输入流的操作3)、掌握文件输出流的操作二、实验内容1使用对象的串行化机制,使用 RandomAccessFile 构造一个应用程序能够随机存取文件的记录,可显示、修改记录的内容。撰写一个 StoreDirList 类,令其构造函数可以接收文件路径,并能够产生该路径下的所有文件的名称列表。2用 DataInputStream 输出一个整型数,一个双精度数和一个字符串到文件中,然后用 DataOutputStream 将这些

22、文件读入并打印到标准输出设备。实验十、Swing 容器及其组件一、实验目的1)、掌握容器的属性与方法2)、掌握 Swing 不同组件的属性与方法二、实验内容1应用按钮、单选按钮、复选框、文本组件等 Swing 组件设计一个安装程序的对话框界面实验十一、布局管理器一、实验目的1)、掌握布局管理器的类型2)、掌握布局管理器的使用方法二、实验内容1应用布局方法设计一个手机的界面实验十二、事件处理一、实验目的1)、掌握事件处理模型2)、能够用程序实现事件处理3)、掌握使用内部类的方法处理事件二、实验内容1在一个窗口中,在四个位置循环显示四种不同颜色的正方形,当鼠标点击时,停止循环显示,再次点击,恢复显示2在窗口的一个区域进行鼠标操作:mouseEnter,mouseExit,mousePress,mouseDrage 和 mouseClick。在窗口的另一个区域以文字显示鼠标所进行的相应操作。另外当鼠标进行mousePress,mouseDrage,mouseClick 操作时,将显示一个图片。当鼠标拖拉时,图片随鼠标移动。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报