《Java程序设计》实验指导书.doc_第1页
《Java程序设计》实验指导书.doc_第2页
《Java程序设计》实验指导书.doc_第3页
《Java程序设计》实验指导书.doc_第4页
《Java程序设计》实验指导书.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java程序设计实验指导书实验一、熟悉JDK环境及主要命令一、实验目的1) 熟悉JDK的环境配置2) 掌握JDK的命令3) 掌握Java Application程序的开发过程,并编写一个Java Application程序二、实验内容1按照上课所学知识,为自己的机器配置环境变量2编辑一个Hello World 的小程序,并试着编译运行它3将Vehicle 和VehicleDriver两个文件用自己的文本编辑器重新编辑并编译运行,掌握类和对象的定义和使用1)Vehicle.java (注意:以下代码有几个错误的地方,需要同学自己把他们找出来并更正过来)public class 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单位速度行驶driveSpeed=40;else System.out.println(你在安全行驶速度内行驶);driveSpeed=speed;2)VehicleDriver.java public class VehicleDriverpublic String name; /定义司机的名字/*VehicleDriver 类构造函数 */public VehicleDriver()name=TOM;/*VehicleDriver 类对象的work方法*/public void work()Vehicle v=new Vehicle(); /生成Vehicle类的对象vv.driveAt(70); /调用v对象所固有的driveAt()方法 public static void main(String args) /生成VehicleDriver类的对象vb VehicleDriver vd=new VehicleDriver(); vd.work(); /调用vd对象所固有的work()方法 3将Vehicle 和VehilceDriver 两个类放在一个.java文件中,文件名称取名为Vtogether.java (注意:需将Vehicle 或 VehicleDriver中某一个类的名称改名为Vtogether,具体更改哪一个由同学根据实际情况来判断),编译和运行该文件实验二、类的定义和对象的使用一、实验目的1) 掌握类的定义2) 掌握对象的使用3) 掌握构造方法的重载二、实验内容1创建一个汽车类CarModel.java,它里面有2个不同的构造函数,CarManufactory.java可以应用这些构造方法创建不同类型的汽车CarModel.java设计要求如下: 定义style(String),color(String),category(String)注:括号中为变量类型 创建第一个构造函数,分别给以上变量赋值,要求为该构造函数定义三个形参,分别赋给相应的变量,形参的值在对象创建时给出 创建第二个构造函数,此构造函数过程为空 定义三个方法,分别返回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);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) 掌握类的继承2) 掌握类成员的覆盖和重载二、实验内容1Vehicle类的基础上创建一个Tractor(拖拉机)类,他不但拥有journey,wheelNum,loadNum,driveSpeed 四种属性和driveAt()方法,而且还拥有自己的plough(耕地)方法,在该方法中要求能够显示journey, wheelNum, loadNum三个属性的值,在Tractor中覆盖driverAt()方法,速度大于等于35就认为是超速,如果是超速速度就要设为20,在这个类中还要创建一个main()方法,分别调用plough()、driveAt方法和Vehicle类的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;else 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 play(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 super 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 已知有两个接口如下所示,要求定义一个类,其中包含两个内部类,这两个内部类分别实现这两个接口,且设为private,在类中分别定义两个方法,可以返回这两个接口。public interface Destination String readLabel(); public interface Contents int value();实验五、异常的处理机制一、实验目的1) 掌握异常的声明2) 掌握异常的抛出3) 掌握异常的捕获4) 掌握自定义异常的使用二、实验内容1编写一段Java程序,在被调用方法中抛出一个异常对象,并将异常交给调用它的方法来处理2编写一段Java程序,创建一个自定义异常类,并在一个方法中抛出自定义异常对象,在该方法的catch处理程序中捕获它并重新抛出,让调用它的方法来处理。实验六、多线程编程一、实验目的1) 了解多线程的定义2) 理解多线程的互斥和同步3) 掌握多线程的调度和控制二、实验内容1使用Runnable接口实现以下类的功能: public class testThread extends Thread public 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元,那么最后账户的存款应是250元。实际操作过程如下:l 先进行A的存款操作:(1)得到账户的存款数额200,耗时2s。(2)将账户数额增加100,耗时忽略不计(3)将新生成的账户结果300返回到ATM机的服务器上,耗时2sl 在进行B的取款操作: (4)得到增加后账户存款数额300,耗时2s。(5)将账户数额减少50,耗时忽略不计。(6)将新生成的账户结果250返回到ATM机的服务器上,耗时2s。请同学们根据以上要求,编写一个Java程序实现该功能注:将A的操作和B的操作分别用线程来表示3.如下是消费者和生产者的一个简化例子,将次程序看懂,然后写下运行结果。/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; public 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(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(); /测试程序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)、掌握输入字符流的操作2)、掌握输出字符流的操作二、实验目的1 从键盘输入一串字符,将其输出到屏幕上2 将一个文本文件输出到屏幕上实验九、文件及其文件流一、实验目的1)、掌握文件的操作2)、掌握文件输入流的操作3)、掌握文件输出流的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论