interface Instrumentvoid play();String what();void adjust();implementsWindvoid play()String what()void adjust()implementsPercussionvoid play()String what()void adjust()implementsStringedvoid play()String what()void adjust()extendsWoodwindvoid play()String what()extendsBrassvoid play()void adjust()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(\方法运行....\ }
public static void main(String arg[]){ testThread t=new testThread();
System.out.println(\开始运行...\ t.start(); } }
2.假设一个银行的ATM机,它可以允许用户存款也可以取款。现在一个账户上有存款200元,用户A和用户B都拥有在这个账户上存款和取款的权利。用户A将存入100元,而用户B将取出50元,那么最后账户的存款应是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.如下是消费者和生产者的一个简化例子,将次程序看懂,然后写下运行结果。
//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(\ available = false; notifyAll(); return contents; }
public synchronized void put(int value) { while (available == true) { try {
wait();
} catch (InterruptedException e) { } }
System.out.println(\ 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.使用对象的串行化机制,使用RandomAccessFile构造一个应用程序能够随机存取文件的记录,可显示、修改记录的内容。撰写一个StoreDirList类,令其构造函数可以接收文件路径,并能够产生该路径下的所有文件的名称列表。
2.用DataInputStream输出一个整型数,一个双精度数和一个字符串到文件中,然后用DataOutputStream将这些文件读入并打印到标准输出设备。
实验十、Swing容器及其组件
一、实验目的
1)、掌握容器的属性与方法
2)、掌握Swing不同组件的属性与方法 二、实验内容
1.应用按钮、单选按钮、复选框、文本组件等Swing组件设计一个安装程序的对话框界面
实验十一、布局管理器
一、实验目的
1)、掌握布局管理器的类型
2)、掌握布局管理器的使用方法 二、实验内容
1.应用布局方法设计一个手机的界面
实验十二、事件处理
一、实验目的
1)、掌握事件处理模型
2)、能够用程序实现事件处理
3)、掌握使用内部类的方法处理事件