快学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 ...
随机推荐
- ionic入门教程-ionic路由详解(state、route、resolve)(转)
http://blog.csdn.net/onil_chen/article/details/51758696?appinstall=0 今天好好的跟大家讲讲ionic的路由配置. 问到的朋友有点多, ...
- dma子系统 dmac
DMA子是CPU中实现数据传输的一种方式,CPU配置好DMA控制器之后发起数据传输,CPU本身不参与数据传输的动作中去. DMA种类: 分为外设DMA和DMA控制器.其中外设DMA实现的为特定的外设与 ...
- mongoDB用法整理
1. mongoDB UI工具, Studio 3T,用Non_Commercial的版本就足够. 2. 查询某字段长度大于特定值的 db.test.find({ F_DAQDATA: { $type ...
- 用WordPress建立专业网站教程 (一步步建站, 一步也不少)
最新美国域名中心US Domain Center: http://www.usdomaincenter.com/ 建站教程 (10分钟上线, 无需备案): https://www.qiyewp.com ...
- 聊聊IOCP,聊聊异步编程
*:first-child { margin-top: 0 !important; } .markdown-body>*:last-child { margin-bottom: 0 !impor ...
- 常见机试题分析Java版
1. 操作系统任务分为系统任务和用户任务两种.其中,系统任务的优先级<50,用户任务的优先级>=50且<=255.优先级大于255的为非法任务,应予以剔除.现有一任务队列task[] ...
- Fiddler 断点功能
Fiddler 断点: (1) Fiddler 是以作为代理服务器的方式进行工作的,所以,本地应用与服务器传递的这些数据都会经过 Fiddler:(2) 有的时候,我们希望在传递的中间进行修改后再传递 ...
- Qt编写高仿苹果MAC电脑输入法(支持触摸滑动选词)
最近有个朋友找我定制一个输入法,需要高仿一个苹果MAC电脑的输入法,MAC操作系统的审美无疑是相当棒的,于是乎直接拿以前的输入法高仿了一个,由于之前有做过输入法这块的开发,而且改进了四年,各种需求都遇 ...
- Linux服务器性能分析与调优
一 linux服务器性能查看 1.1 cpu性能查看 1.查看物理cpu个数: cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc ...
- TTL是什么意思?
TTL是一个ip协议的值,它告诉网络,数据包在网络中的时间是否太长而应被丢弃.有很多原因使包在一定时间内不能被传递到目的地. TTL 的初值通常是系统缺省值,是包头中的8位的域.TTL的最初设想是确定 ...