快学Scala 第6章 对象 - 练习
1. 编写一个Conversions对象,加入inchesToCentimeters、gallonsToLiters和milesToKilometers方法。
object Conversions { def main(args: Array[String]){ printf("1 inch = %g centimeters\n", inchesToCentimeters(1)) printf("2 gallons = %g liters\n", gallonsToLiters(2)) printf("3 miles = %g centimeters\n", milesToKilometers(3)) } def inchesToCentimeters(inches:Double)={ inches * 2.54 } def gallonsToLiters(gallons:Double)={ gallons * 3.7854118 } def milesToKilometers(miles:Double)={ miles * 1.609344 }}/*result1 inch = 2.54000 centimeters2 gallons = 7.57082 liters3 miles = 4.82803 centimeters*/abstract class UnitConversions{ def convert(amt:Double): Double}object inchesToCentimeters extends UnitConversions{ override def convert(amt:Double)= amt * 2.54 }object gallonsToLiters extends UnitConversions{ override def convert(amt:Double)= amt * 3.7854118 }object milesToKilometers extends UnitConversions{ override def convert(amt:Double)= amt * 1.609344 }printf("1 inch = %g centimeters\n", inchesToCentimeters.convert(1))printf("2 gallons = %g liters\n", gallonsToLiters.convert(2))printf("3 miles = %g centimeters\n", milesToKilometers.convert(3))/*result1 inch = 2.54000 centimeters2 gallons = 7.57082 liters3 miles = 4.82803 centimeters*/import java.awt._object Origin extends Point{ override def getLocation:Point = super.getLocation}Origin.move(2,3)println(Origin.toString)/*resultMain$$anon$1$Origin$[x=2,y=3]*/ class Point private(val x:Int, val y:Int){ override def toString = "Point at [x=%d,y=%d]".format(x,y)}object Point{ def apply(x:Int, y:Int) = new Point(x,y)}val a = Point(3,4)println(a.toString)/*resultPoint at [x=3,y=4]*/ object Reverse{ def main(args:Array[String]){ for(i <- (0 until args.length).reverse) print(args(i) + " ") }}/* The following code did not work for me. object Reverse extends App{ for(i <- (0 until args.length).reverse) print(args(i) + " ")}*//*resultWorld Hello*/object Poker extends Enumeration with App{ val Heart = Value(3, "♥") val Diamond = Value(4, "♦") val Club = Value(5, "♣") val Spade = Value(6, "♠") println(Poker.Heart) println(Poker.Diamond) println(Poker.Club) println(Poker.Spade)} object Card extends Enumeration with App{ val Heart = Value(3, "") val Diamond = Value(4, "") val Club = Value(5, "") val Spade = Value(6, "") def color(c: Card.Value){ if(c == Card.Club || c == Card.Spade) print("Black") else print("Red") } color(Card.Heart)}/*Red*/object RGB extends Enumeration with App{ val RED = Value(0xff0000,"Red") val BLACk = Value(0x000000,"Black") val GREEN = Value(0x00ff00,"Green") val CYAN = Value(0x00ffff,"Cyan") val YELLO = Value(0xffff00,"Yellow") val WHITE = Value(0xffffff,"White") val BLUE = Value(0x0000ff,"Blue") val MAGENTA = Value(0xff00ff,"Magenta")} 快学Scala 第6章 对象 - 练习的更多相关文章
- 《快学Scala》第二章 控制结构和函数
- 《快学Scala》第一章 基础
- 快学Scala习题解答—第一章 基础
1 简介 近期对Scala比较感兴趣,买了本<快学Scala>,感觉不错.比<Programming Scala:Tackle Multi-Core Complexity on th ...
- 《快学Scala》
Robert Peng's Blog - https://mr-dai.github.io/ <快学Scala>Intro与第1章 - https://mr-dai.github.io/S ...
- 快学Scala 第十九课 (trait的abstract override使用)
trait的abstract override使用: 当我看到abstract override介绍的时候也是一脸懵逼,因为快学scala,只介绍了因为TimestampLogger中调用的super ...
- 快学Scala 第十三课 (类型层级,对象相等性)
Scala 类型层级: 对象相等性: 和Java一样要重写equals方法和hashcode方法 class Student(val id: Int, val name: String) { over ...
- 《快学Scala》第六章 对象 第七章 包和引入
- 快学Scala习题解答—第四章 映射和元组
4 映射和元组 4.1 设置一个映射,当中包括你想要的一些装备,以及它们的价格.然后构建还有一个映射.採用同一组键,可是价格上打9折 映射的简单操作 ,"gun"->18 ...
- 快学scala习题解答--第五章 类
5 类 5.1 改进5.1节的Counter类,让它不要在Int.MaxValue时变成负数 class Count{ private var value = Int.MaxValue else v ...
随机推荐
- 当 return 遇到 try
. . . . . 今天有同事和我探讨在群里看到的一道有趣的题目,在探讨的过程中让我搞清楚了一些曾经模糊的概念,特此记录下来. 题目给出如下代码,问运行后打印的结果是什么. public static ...
- NPS - 数字化营销 - 净推荐值
在获客成本高涨的时代,拥有一批超级用户,让企业更有本钱专注在提升产品及体验,创造更多的超级用户,形成良性循环.超级用户究竟要如何创造?超级用户可以定义成“忠诚用户当中最忠诚的一群人”,因此创造超级用户 ...
- Postman-REST-Client_v0.8.1之chrome插件下载
一.前言 安装chrome浏览器postman-rest-client插件,实现基于资源RestFul的http协议的GET.POST.DELETE.PUT等方式请求调用,具体安装使用步骤如下所示 二 ...
- Laravel Homestead 离线安装
一.写在之前,网络不够快想要安装Homestead,也是一个浩大的工程,对于下载一个 1.22G左右的 laravel/homestead box 也是非常的麻烦.那么如何才能离线安装呢? 接着往下看 ...
- Oracle 11G 安装文档
一. 将文件win32_11gR2_database_1of2.zip和win32_11gR2_database_2of2.zip解压. 注意:这两个文件解压到同一个目录下,即:将Components ...
- 【多媒体封装格式详解】--- AAC ADTS格式分析
ADTS全称是(Audio Data Transport Stream),是AAC的一种十分常见的传输格式. 记得第一次做demux的时候,把AAC音频的ES流从FLV封装格式中抽出来送给硬件解码器时 ...
- 我的订单页面List
<%@ page language="java" contentType="text/html;charset=UTF-8"%> <%@ ta ...
- python之刷博客访问量
通过写刷访问量学习正则匹配 说明信息 说明:仅仅是为了熟悉正则表达式以及网页结构,并不赞成刷访问量操作. 1.刷访问量第一版 1.1 确定网页url结构,构造匹配模式串 首先是要确定刷的网页.第一版实 ...
- B - Battle City bfs+优先队列
来源poj2312 Many of us had played the game "Battle city" in our childhood, and some people ( ...
- 算法提高 金属采集_树形dp
算法提高 金属采集 时间限制:1.0s 内存限制:256.0MB 问题描述 人类在火星上发现了一种新的金属!这些金属分布在一些奇怪的地方,不妨叫它节点好了.一些节点之间有道路相连 ...