public void play(int NoteX) {
System.out.println(\ }
public static void main(String[] arg){ Father x=new Father(); Son y=new Son(); System.out.println(\ System.out.println(\ y.miner(); System.out.println(\ System.out.println(\ 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(\ } }
实验四、接口与内部类
一、实验目的
1)、掌握接口的定义和使用方法
2)、掌握内部类的定义和使用方法 二、实验内容
1.将以下图示用接口实现和继承实现
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); } } }

