快学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 ...
随机推荐
- iOS 开发网络篇—监测网络状态
iOS开发网络篇—监测网络状态 一.说明 在网络应用中,需要对用户设备的网络状态进行实时监控,有两个目的: (1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能) (2)根据用户的网络状态进行 ...
- 【iCore4 双核心板_ARM】例程三十二:UART_IAP_ARM实验——更新升级STM32
实验现象及操作说明: 1.本例程共有两个代码包,APP和IAP,IAP程序功能实现将APP程序升级至STM32中. 2.直接上电或烧写程序将执行升级的APP应用程序. BIN升级文件产生方法: 1.编 ...
- centos图形界面,vncserver
yum -y groupinstall "Server with GUI" RHEL7 安装图形界面1. 以root角色运行以下命令来安装TigerVNC server yum i ...
- 【OCP|OCM】Oracle培训考证系列
[OCP|OCM]Oracle培训考证系列 我的个人信息 网名:小麦苗 QQ:646634621 QQ群:618766405 我的博客:http://blog.itpub.net/26736162 ...
- sql知识点记录
order by就是排序. group by就是分组. WHERE语句在GROUP BY语句之前:SQL会在分组之前计算WHERE语句. HAVING语句在GROUP BY语句之后:SQL会在分 ...
- Go etcd初探
1.etcd集群的配置 SET IP1_2380=http://127.0.0.1:2380 SET IP1_2379=http://127.0.0.1:2379 SET IP2_2380=http: ...
- Linux下的awk文本分析命令详解
一.简介 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是linux/ ...
- geotrellis使用(四十一)流水线技术
前言 之前 GeoTrellis 为方便用户将数据(GeoTiff 等遥感影像)导入到 backend (包含 Accumulo.File.Hadoop 等格式)中,编写了一个 ETL 类,该类的输入 ...
- ApplicaitionContext妙用request解耦合
本文记录一个web应用中,如果要获取request对象怎么获取,本次主要思考来自看到上次文件必须把request对象放进service层导致的疑问,然后学习总结之. 第一,也是我们最常用的,在cont ...
- Oracle课程档案,第五天
集合操作 desc job_history:改变历史职位 job_history:历史表 vnion:重复值只保留一个 去除重复值 ★★ vnion all: 把所有重复值保留 不去除重复值★★ in ...