java-接口练习实验报告

 计算机工程学院实验报告

 2017-2018学年第1学期

 课程名称:

 面向对象程序设计

 专 业:

 计算机科学与技术

 班 级:

 学 号:

 姓 名:

 指导教师

 实验名称:接口技术练习

 实验日期:2017.11.07

 实验平台:Windows 7 + JDK8+Eclipse

 实验目的熟练掌握接口和接口技术的实现

 实验内容与完成情况

 1. 创建一个收费接口Charge,其中有一个抽象方法charge().

 创建另一个收费接口Play,其中有一个抽象方法play().

 声明类Bus来实现接口Charge,对于Bus中的charge(),实现为输出“公共汽车:1元/张,不计公里数”。

 声明类Taxi来实现接口Charge,对于Taxi中的charge(),实现为输出“出租车:1.6元/公里,起价3公里

 声明类Cinema来同时实现接口Charge,Play。对于Cinema中的charge(),实现为输出“解放电影院:30元/张,凭学生证享受半价。”

 对于Cinema中的play(),实现输出为“正在放映电影。“

 在主类中创建对象,输出结果。

 代码:

 package bhjx;

 interface Charge{

  void charge();

 }

 interface Play{

  void play();

 }

 class bus implements Charge{

  public void charge(){

  System.out.println("公共汽车:1元/张,不计公里数");

  }

 }

 class taxi implements Charge{

  public void charge(){

  System.out.println("出租车:1.6元/公里,起价3公里");

  }

 }

 class cinema implements Charge,Play{

  public void charge(){

  System.out.println("解放电影院:30元/张,凭学生证享受半价");

  }

  public void play(){

  System.out.println("正在放映电影");

  }

 }

 public class fee {

  public static void main(String[] args) {

  bus b = new bus();

  taxi t = new taxi();

  cinema c = new cinema();

  b.charge();

  t.charge();

  c.charge();c.play();

  }

 }

 运行结果:

 2. 定义资金操作接口Manage,抽象方法有double cunkuan(double m),double qukuan(double m)。设计银行账户Bank类实现资金操作接口Manage,成员变量账号,姓名,存款余额。构造方法,与输出当前余额方法disp()。

 代码:

 public class money1 {

  public static void main(String[] args) {

  Bank b=new Bank("154010101","张三丰",1000);

 b.disp();

  b.cunkuan(5000.0);

  b.disp();

  b.qukuan(1000);

  b.disp();

  } }

 interface Manage{

  double cunkuan(double n);

  double qukuan(double n );

 }

 class Bank implements Manage{

  String id;

  String name;

  double money;

  Bank(String i,String n,double m){

  id=i;

  name=n;

  money=m;}

  public double cunkuan(double m){

  return money= money+m;

  }

  public double qukuan(double m){

  money=money-m;

  return money; }

  void disp(){

  System.out.println("账户为:"+id+" 姓名:"+name+ " 账户余额为:"+money);

  }

 }

 运行结果:

 3. 重新定义 Manage,包含抽象方法operation(Bank b,double m),需要银行账户和存取款金额。Bank类中不在定义存取款方法。

 定义cunkuan和qukuan类分别实现Manage的存取款方法。定义Caital类包含Caitaloperation(manage s,Bank b,double m)方法实现存取款功能,s对象如果是Caitaladd则实现存款,若是Caitaldesc,则实现取款操作,实现方法的多态性。主类中分别创建4个类的对象,实现存取款操作。

 代码:

 public class money2 {

  public static void main(String[] args) {

  Bank b=new Bank("154010101","张三丰",15000.0);

 cunkuan a=new cunkuan();

 qukuan c=new qukuan();

 b.disp();

 caital x=new caital();

 x.caitaloperation( a,b,200);

 b.disp();

 x.caitaloperation( c,b,310);

 b.disp();

  } }

 interface Manage{

  double operation(Bank b,double m); }

 class Bank{

  String id;

  String name;

  double money;

 Bank(String i,String n,double m){

  id=i;

  name=n;

  money=m;

 }

  void disp(){

  System.out.println("账户为:"+id+ " 姓名:"+name+ " 余额为:"+money);

 } }

 class cunkuan implements Manage{

  public double operation(Bank b,double m){

  b.money=b.money+m;

  return b.money;

 } }

  class qukuan implements Manage{

  public double operation(Bank b,double m){

  b.money=b.money+m;

  return b.money;

  } }

  class caital{

  void caitaloperation(Manage s,Bank b,double m){

  if(s instanceof cunkuan)

  System.out.println("存款成功,当前余额为:"+ s.operation(b,m));

  else if(s instanceof qukuan)

  System.out.println("取款成功,当前余额为:"+ s.operation(b,m));

  else System.out.println("金额输入有误");

  } }

  运行结果:

 出现的问题及解决方案

 实验中发现了自己的很多不足,比如对接口的implements用法及使用规范不熟悉,对各关键字的写法不熟悉。同时也了解了接口中的方法都是抽象的,不能实例化对象。

 教师评阅意见

 成绩: 教师签名: 日期:

推荐访问:接口 实验 报告 Java