Java 6-2 货车的装载量
卡车要装载一批货物,货物由三种商品组成:电视、计算机、洗衣机。卡车需要计算出整批货物的重量。
要求有一个ComputerWeight接口,该接口中有一个方法:
public double computeWeight()
######有三个实现该接口的类:Television、Computer和WashMachine. 这三个类通过实现接口给出自重。这3个类都有属性weight,并通过构造方法初始化,其中Television类的computeWeight()方法,返回weight值;Computer的computeWeight()方法,返回2倍weight值;WashMachine的computeWeight()方法,返回3倍weight值
有一个卡车Truck类,该类用ComputeWeight接口类型的数组作为成员(Truck类面向接口),那么该数组的元素就可以存放Television对象的引用、Computer对象的引用或WashMachine
对象的引用。程序能输出Truck对象所装载的货物的总重量。
接口方法定义:
ComputerWeight接口的方法:
public double computeWeight();
该方法 在不同实现类中实现不同,Television类的computeWeight()方法,返回weight值;Computer的computeWeight()方法,返回2倍weight值;WashMachine的computeWeight()方法,返回3倍weight值。
裁判测试程序样例:
import java.util.Scanner;public class Main {public static void main(String[] args) {ComputerWeight[] goods=new ComputerWeight[650]; //650件货物double[] a=new double[3];//存储Television,Computer,WashMachine对象weight属性初值Scanner sc=new Scanner(System.in);String str1=sc.nextLine();String[] str_a=str1.split(" ");for(int i=0;i<3;i++)a[i]=Double.parseDouble(str_a[i]);for(int i=0;i<goods.length;i++) { //简单分成三类if(i%3==0)goods[i]=new Television(a[0]);else if(i%3==1)goods[i]=new Computer(a[1]);else if(i%3==2)goods[i]=new WashMachine(a[2]);} Truck truck=new Truck(goods);System.out.printf("货车装载的货物重量:%-8.5f kg\n",truck.getTotalWeights());goods=new ComputerWeight[68]; //68件货物for(int i=0;i<goods.length;i++) { //简单分成两类if(i%2==0)goods[i]=new Television(a[0]);else goods[i]=new WashMachine(a[2]);} truck.setGoods(goods);System.out.printf("货车装载的货物重量:%-8.5f kg\n",truck.getTotalWeights());}
}
/* 请在这里填写答案 */
//定义 接口ComputerWeight 代码写在下面//定义类 Television 实现接口ComputerWeight 代码写在下面//定义类Computer实现接口ComputerWeight 代码写在下面//定义类WashMachine 实现接口ComputerWeight 代码写在下面//类Truck ,实现相关成员方法 代码写在下面输入样例:
3.5 2.67 13.8
输出样例:
货车装载的货物重量:10860.68000 kg
货车装载的货物重量:1526.60000 kg
我的答案
class Truck
{ComputerWeight goods[];Truck(ComputerWeight[] goods) {super();this.goods = goods;}public void setGoods(ComputerWeight[] goods) {this.goods = goods;}public double getTotalWeight(){double sum=0;for(ComputerWeight i:goods){sum += i.computerWeight();}return sum;}}interface ComputerWeight
{double computerWeight();
}class Television implements ComputerWeight
{double w;Television(double w) {super();this.w = w;}public double computerWeight(){return w;}
}class Computer implements ComputerWeight
{double weight;Computer(double weight){this.weight=weight;}public double computerWeight(){return 2*weight;}
}class WashMachine implements ComputerWeight
{double weight;WashMachine(double weight){this.weight=weight;}public double computerWeight(){return 3*weight;}
}
Java 6-2 货车的装载量相关推荐
- Java知识点总结(JDBC-封装JDBC)
Java知识点总结(JDBC-封装JDBC) @(Java知识点总结)[Java, JDBC] 封装JDBC src目录下新建一个db.properties文件,用于封装数据库连接信息 把获取数据库连 ...
- java json和对象互相装换
java json和对象互相装换 1.com.alibaba.fastjson.JSON 2.com.fasterxml.jackson.databind.ObjectMapper 转载于:https ...
- 装载鸿蒙系统,华为3-4月份将正式推送鸿蒙系统 第三方装载量也将达到一个亿...
描述 作为华为消费者业务软件部总裁的王成录表示,鸿蒙系统不是安卓系统的拷贝,也不是苹果系统的拷贝,而是面向的整个物联网.预计在2021年,华为持有设备装机量将达到两个亿,或者是超过两个亿.还有很重要的 ...
- C++二分查找示例(求货物装载量)
C++二分查找,我们了解了二分查找的算法以及它的算法复杂度,效率还是不错的. 通过一个示例来说明下,传送带一次送来n个货物重量为w,使用k辆卡车来装载,求出装载全部货物所需的最大运载量P的最小值. # ...
- java unbox_java base-05-Box UnBox 自动装拆箱
java 语言的设计 java 为什么有基本类型 作为一门 OO 语言,java 为什么要保留基本类型呢. 个人的理解是,出于工程学上的考虑. 基本类型的内存占用,比对象要小得多. 基本对象 基本数据 ...
- java se版本_补装老版本的Java SE
到oracle注册账号下载bin文件 在bin文件下载目录打开终端复制下面到命令 # chmod +x jdk-6u21-linux-i586.bin 注意版本不同,比如我这次下载到是6u45 chm ...
- java sync_Java同步简介 - 加大装益达 - OSCHINA - 中文开源技术交流社区
原文链接 [TOC] Java同步 Java中同步一直都是很重要的问题,对于初学者来说也是不太容易能理解的问题.特在此记录一下有关Java中同步和锁的知识.主要涉及到同步的概念以及Java中解决的办法 ...
- Java基础知识学习06-封装、继承
封装 概念:将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法实现对隐藏信息的操作和访问. 特点:提高代码的复用性: 隐藏类的实例细节,方便修改和实现: 提高代码的安全性. ...
- 独家发布!java总结与心得,下载量瞬秒百万
一. JVM内存区域的划分 1.1 java虚拟机运行时数据区 java虚拟机运行时数据区分布图: JVM栈(Java Virtual Machine Stacks): Java中一个线程就会相应有 ...
最新文章
- 什么是SOLID原则(第3部分)
- php中转,使用 PHP Curl 做数据中转
- 图解VC6辅助编程工具的使用
- Oh My God!e.printStackTrace() 导致系统卡崩
- 1Nginx+fastdfs分布式文件存储
- 数字图像处理-0.绪论
- HDOJ1028-Ignatius and the Princess III(整数划分)
- stm32-再谈GPIO
- VM安装失败 Failed to create the requested registry key Key:installer Error:1021
- Linux(Ubuntu)使用日记------自定义命令的使用
- 进度类计算_PERT
- Ubuntu搭建BT服务器FTP服务器发布种子
- Unity Translate方法使用指南
- 批量修改或删除多个 Word、PPT、Excel、PDF 和记事本文件中的多个关键字
- 小程序改变swiper样式(带缩略图)
- 《Effective Python 编写高质量Python代码的59个有效方法》读书笔记
- 05-SA8155 QNX I2C框架及代码分析
- 网络存储技术Windows server 2012 (项目八 文件共享与磁盘映射)
- 2019年云架构和云计算趋势如何?|中机智库干货
- Golang知识总结