计算机工程学院实验报告

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 接口 实验报告_java-接口练习实验报告相关推荐

  1. java弹弹球实验报告_Java弹球游戏实验报告—chen

    Java弹球游戏实验报告-chen 课 程 设 计 报 告 题 目 弹球小游戏 姓 名 方成 学 号 20 专 业 java 指导教师 陈华恩 2013年 12 月 30 目录 一.实验目的2 二.需 ...

  2. java红牛农场答案_Java面向对象程序设计实验指导与习题解答(21世纪高等学校计算机专业实用规划教材)...

    导语 <Java面向对象程序设计实验指导与习题解答>是<Java面向对象程序设计>(作者耿祥义,清华大学出版社出版,2010)的配套实验指导和习题解答,目的是通过一系列实验练习 ...

  3. java红牛农场答案_Java面向对象程序设计实验指导与习题解答

    第1章 java入门 实验1一个简单的应用程序 实验2教室.教师和学生 实验答案 第2章 基本数据类型 实验1输出特殊偏旁的汉字 实验2输入.输出学生的基本信息 实验3超大整数的加法 实验答案 第3章 ...

  4. java抽象和接口的理解_Java接口实现与抽象类的区别理解 | 彬菌

    版权声明:转载原创文章请以超链接形式请注明原文章出处,尊重作者,尊重原创! 恰饭广告 接口:接口是抽象方法的集合.接口通常以interface来声明. 接口注意事项: 1.严格来说,接口是用来实现(i ...

  5. Java私有方法解释_java接口中 定义 private 私有方法

    在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法.只允许我们定义public访问权限的方法.抽象方法或静态方法.但是从Java 9 开 ...

  6. java什么是网络接口_java接口和类的区别是什么?它们都有哪些作用呢?

    由于新兴技术的发展,java不断地被更多人应用,而其中java接口和java类的区别主要是哪些,在哪些方面作用显著?这是困扰许多人的问题,那么,让我们继续看一下这两者的区别和作用吧? 在java中,对 ...

  7. java nio的演进_Java接口的防御性API演进

    java nio的演进 API的发展绝对是不平凡的. 只有少数几个需要处理的事情. 我们大多数人每天都在使用内部专有API. 现代IDE附带了很棒的工具,可以分解,重命名,上拉,下推,间接,委托,推断 ...

  8. java接口编程题_Java接口练习题

    1.说出下面程序的执行结果: interface InterfaceA { String S = "good "; void f(); } abstract class Class ...

  9. java接口的关键字_Java 接口 interface关键字

    1.概念:一种特殊的类,有全局常量和公共方法组成 定义接口用interface关键字 2.语法: //中括号"[ ]"的含义:你可继承父接口,也可不继承,是可选的 [修饰符] (a ...

  10. java抽象类接口举例代码_Java接口和抽象类实例分析

    本文实例讲述了Java的接口和抽象类.分享给大家供大家参考.具体分析如下: 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相 ...

最新文章

  1. 利用numpy对已知样本点进行多项式拟合
  2. 25台机器人=18名搬运工,我在徐福记工厂,围观了给旷视河图的落地现场
  3. C#中使用Path、Directory、Split、Substring实现对文件路径和文件名的常用操作实例
  4. 工作212:不能改变父组件值
  5. java类型之间的转换_JAVA基本数据类型及之间的转换
  6. linux yum 链接,Linux YUM之YUM仓库
  7. 5.自定义MAGENTO主题
  8. 学习笔记之极客时间《Java 核心技术面试精讲》
  9. 2022年全球市场激光直接成像系统(LDI)总体规模、主要生产商、主要地区、产品和应用细分研究报告
  10. 计算机磁盘分为硬盘和什么,win10磁盘分区合并的方法是什么_win10电脑分盘怎么合并...
  11. 二阶矩阵转置怎么求_这个二阶矩阵的二范数怎么求
  12. 摘录3:没有趋势,没有背驰。
  13. 从零开始的iOS开发:10 | 如何构建一个APP
  14. 一体化3团队项目记录
  15. Python---统计《三国演义》中出现次数较高的人物
  16. 知道自己错哪了吗?-整体检查-PCB系列教程1-14
  17. 装了 Linux 之后就感到迷茫、不知该干什么的朋友看过来
  18. 拼多多收php吗_php调用拼多多的接口
  19. 原生JS和JQ实现div的展开与收齐动画
  20. 自己编写的bug管理系统

热门文章

  1. 服务器背板作用,硬盘和服务器背板
  2. 爱了!阿里P9开源分享内部Java核心开发手册(2022版)覆盖P5到P8
  3. socket编程c++
  4. 济南市公安局人口数据备份库项目(数据复制)之二
  5. MIT CMS.300 Session 3 – DIGITAL ENVIRONMENTS GAMES 数字环境与游戏
  6. 年龄识别之AgeNet
  7. Office 2010 解压后无法安装(安装程序包的语言不受系统支持)释疑
  8. main flag redefined: graceful
  9. banner轮播图实现
  10. 【Java小游戏】俄罗斯方块