Java实验三 面对接口编程

实验三 面对接口编程

一、实验目的及要求

1.实验目的

1)掌握面对抽象编程的相关基本知识。

2)掌握对Java语言中接口的基本知识及其使用。

3)掌握利用接口在程序设计中实现相关功能的语法知识及编程实现。

2.实验要求

1)深刻理解并认识面对抽象编程的知识与应用;

2)深刻理解并认识接口在程序设计上的功能及其编程实现;

3)懂得编写相关程序对所理解的内容进行实验;

4)在实验过程中,保持个人的独立思考和解决问题的能力;

5)在本次实验过程中,要深刻保持个人注意力集中;

6)在本次实验过程中,要时刻总结经验与教训;

二、实验环境(工具、配置等)

1.硬件要求:一台可正常启动的计算机。

2.软件要求:不限,但建议使用Java集成开发环境eclipse。

三、实验内容(实验方案、实验步骤、设计思路等)

1.实验方案:在复习及正确掌握相关知识后,编写面对接口编程的简单测试程序,进行程序的调试及改错,并在此过程中验证利用接口实现各种功能的想法。

2.实验步骤:

1)首先创建一个接口Animal。

2)在接口中定义方法eat()、travel()、noOfLegs()。

3)创建Mammallnt类实现接口中的三个方法,并新定义cry()方法。

4)创建一个依赖Mammallnt类的M类,定义get()方法实现回调方法noOfLegs()。

5)创建一个Main类,结合以上类与接口,输出实验结果。

6)总结实验过程中产生的错误及应对方法。

3.设计思路:首先定义接口及其相关方法,定义Mammallnt和M两个类,利用Mammallnt类实现接口中的三个方法,并在Mammallnt构造方法中将M对象作为参数传进来,之后在cry()方法中去调用m2的get()方法,利用Main类进行对实现接口中的普通方法及回调方法noOfLegs()做整合,最后对程序进行具体的完善步骤后,调试并运行出具体结果。

四、实验结果与分析

1.在成功进行实验步骤后,得出相关结果。实验效果图如图1所示:

在这里插入图片描述

图1 实验效果图

2.对哺乳动物Mammallnt类的定义,如图2所示:

在这里插入图片描述

图2 Mammallnt类效果图

实验分析:

1.实验遇到的问题:

1)在完成对Mammallnt类的声明后,程序报错。

2)在类中重写接口中的方法时,程序出现错误。

3)在程序成功运行后,发现实现回调的代码还可优化。

2.问题解决的方法:

1)经过对错误代码部分的调试后,得知在类声明中,Implements应放在class后面。

2)经过对错误代码调试后,得知在重写过程中方法名要保持不变和返回类型都应不变。

3)经过思考后,发现可利用“new Thread(new Runnable(){public void run(){}).start();}”结构新建一个线程来实现回调。

五、附源程序

package edu.shiyan.san;

 

// 接口Animal

interface Animal {public void eat();public void travel();public void noOfLegs(String result);

}

 

// 哺乳动物类

public class MammalInt implements Animal{private M m2;

​	  

​	  public MammalInt(M m2){this.m2 = m2;}public void eat(){System.out.println("鲸鱼吃小鱼");}

​	 

​	  public void travel(){System.out.println("随洋流迁移");}// 回调方法noOfLegs()public void noOfLegs(String result){System.out.println("没有腿的哺乳动物:"+result);}public void cry() {

​		  m2.get(MammalInt.this);System.out.println("呜呜呜~");}

​	 

​	}

 

public class M {public void get(Animal animal) {// TODO 自动生成的方法存根// 建立一个新线程加快效率new Thread(new Runnable(){public void run(){

​			animal.noOfLegs("鲸鱼");}}).start();}

}

// 主类

public class Main{

public static void main(String[] args){M m2 = new M();MammalInt m = new MammalInt(m2);

​		m.eat();

​		m.travel();

​		m.cry();}

);}

}

// 主类

public class Main{

public static void main(String[] args){M m2 = new M();MammalInt m = new MammalInt(m2);

​		m.eat();

​		m.travel();

​		m.cry();}

}
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值