快学Scala 第六章习题答案
来源:互联网 发布:伊朗和沙特 知乎 编辑:程序博客网 时间:2024/04/27 15:30
6.1 编写一个Conversions对象,加入inchesToCentimeters, gallonsToLiters和milesToKilometers方法
object Conversions{ def inchesToCentermeters()={ } def gallonsToLiters()={ } def milesToKilometers()={ }}
6.2 前一个练习不是很面向对象。提供一个通用的超类UnitConversion并定义扩展该超类的InchesToCentimeters, GallonsToLiters和MilesToKilometers对象
abstract class UnitConversion{ def inchesToCentimeters(){} def gallonsToLiters(){} def milesToKilometers(){}}object InchesToCentimeters extends UnitConversion{ override def inchesToCentimeters(){}}object GallonsToLiters extends UnitConversion{ override def gallonsToLiters(){}} object MilesToKilometers extends UnitConversion{ override def milesToKilometers(){} }
6.3 定义一个扩展自java.awt.Point的Origin对象。为什么说这实际上不是个好主意?(仔细看Point类的方法)
Point类中的getLocation 方法返回的是Point对象,如果想返回Origin对象,需要Origin类才行。
object Origin extends Point with App{ override def getLocation:Point = super.getLocation Origin.move(2,3) println(Origin.toString)}
6.4 定义一个Point类和一个伴生对象,使得我们可以不用new 而直接用Point(3,4)构造Point实例
class Point(x:Int,y:Int){ override def toString()={ "(" + x.toString + " , " + y.toString + ")" }}object Point{ def apply(x:Int,y:Int) ={ new Point(x,y) }}
6.5 编写一个Scala应用程序,使用App特质,以反序打印命令行参数,用空格隔开。举例来说,scala Reverse Hello World 应该打印出 World Hello
object Reverse extends App{ args.reverse.foreach(arg => print(arg + " "))}
6.6 编写一个扑克牌四种花色的枚举,让其toString方法分别返回四种花色。
object Card extends Enumeration with App{ val M = Value("♣") val T = Value("♠") val H = Value("♥") val F = Value("♦") println(Card.M) println(Card.T) println(Card.H) println(Card.F) //6.7 实现一个函数,检查某张牌的花色是否为红色。 def color(c:Card.Value){ if(c == Card.M || c == Card.T) print("Black") else print("Red") } color(Card.H)}
6.8 编写一个枚举,描述RGB立方体的8个角。
ID使用颜色值(例如,红色是 0xff0000)。
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 YELLOW = Value(0xffff00,"Yellow") val WHITE = Value(0xffffff,"White") val MAGENTA = Value(0xff0000,"Magenta")}
0 0
- 快学Scala 第六章习题答案
- 快学Scala 第六章习题答案
- 06 快学scala第六章习题答案
- 快学Scala 第三章习题答案
- 快学Scala 第四章习题答案
- 快学Scala 第三章习题答案
- 快学Scala 第四章习题答案
- 快学Scala第五章习题答案
- 快学Scala 第八章习题答案
- 《快学Scala》第六章习题解答
- 快学 scala 第二章课后习题答案
- 快学scala 第二章 读书笔记及习题答案代码
- 快学scala 第三章 读书笔记及习题答案代码
- 快学scala 第四章 读书笔记及习题答案代码
- 快学scala 第五章 读书笔记及习题答案代码
- 02 快学scala第二章习题答案
- 03 快学scala第三章习题答案
- 05 快学scala第五章习题答案
- keySet和entrySet速度区别
- openwrt
- 在Windows下编译PyCaffe
- 动态规划-代码(2)
- RT3070L无线网卡移植
- 快学Scala 第六章习题答案
- Qwt中picker(拾取器)显示设置
- getRequestDispatcher()与sendRedirect()的区别
- 堆排序JAVA代码
- oracle笔记整理11——性能调优之oracle等待事件与表关联
- Handler的使用与异步消息处理
- MySQL5.7.10下载及安装及配置
- 吉大培训 day 1 test
- Logistic regression