快学scala第六章习题答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

7 对象

编写一个Conversions对象,加入inchesToCentimeters,gallonsToLiters和milesToKilometers方法Scala代码

1.object Conversions{

2.def inchesToCentimeters(){}

3.def gallonsToLiters(){}

4.def milesToKilometers(){}

5.}

前一个练习不是很面向对象。提供一个通用的超类UnitConversion并定义扩展该超类的InchesToCentimeters,GallonsToLiters和MilesToKilometers对象

Scala代码

1.abstract class UnitConversion{

2.

3.def inchesToCentimeters(){}

4.def gallonsToLiters(){}

5.def milesToKilometers(){}

6.

7.}

8.

9.object InchesToCentimeters extends UnitConversion{

10.override def inchesToCentimeters() {}

11.}

12.

13.object GallonsToLiters extends UnitConversion{

14.override def gallonsToLiters() {}

15.}

16.

17.object MilesToKilometers extends UnitConversion{

18.override def milesToKilometers() {}

19.}

定义一个扩展自的Origin对象。为什么说这实际上不是个好主意(仔细看Point类的方法)

Point中的getLocation方法返回的是Point对象,如果想返回Origin对象,需要Origin类才行

Scala代码

1.object Origin extends Point with App{

2.

3.override def getLocation: Point =

4.

5.(2,3)

6.println

7.

8.}

定义一个Point类和一个伴生对象,使得我们可以不用new而直接用Point(3,4)来构造Point实例

apply方法的使用

Scala代码

1.class Point(x:Int,y:Int){

2.override def toString: String = "x = "+ x + " y = "+ y

3.}

4.

5.object Point extends App{

6.def apply(x:Int,y:Int)={

7.new Point(x,y)

8.}

9.

10.val p = Point(1,2)

11.println(p)

12.}

编写一个Scala应用程序,使用App特质,以反序打印命令行参数,用空格隔开。举例来说,scala Reverse Hello World应该打印World Hello

Scala代码

1.object Reverse extends App{

2.=> print(arg + " "))

3.}

编写一个扑克牌4种花色的枚举,让其toString方法分别返回♣,♦,♥,♠

Scala代码

1.object Card extends Enumeration with App{

2.val M = Value("♣")

3.val T = Value("♠")

4.val H = Value("♥")

5.val F = Value("♦")

6.

7.println

8.println

9.println

10.println

11.}

实现一个函数,检查某张牌的花色是否为红色

Scala代码

1.object Card extends Enumeration with App{

2.val M = Value("♣")

3.val T = Value("♠")

4.val H = Value("♥")

5.val F = Value("♦")

6.

7.def color(c:{

8.if(c == || c == print("Black")

9.else print("Red")

10.}

11.

12.color

13.}

编写一个枚举,描述RGB立方体的8个角。ID使用颜色值(例如:红色是0xff0000) Scala代码

1.object RGB extends Enumeration with App{

2.val RED = Value(0xff0000,"Red")

3.val BLACK = Value(0x000000,"Black")

4.val GREEN = Value(0x00ff00,"Green")

5.val CYAN = Value(0x00ffff,"Cyan")

6.val YELLOW = Value(0xffff00,"Yellow")

7.val WHITE = Value(0xffffff,"White")

8.val BLUE = Value(0x0000ff,"Blue")

9.val MAGENTA = Value(0xff00ff,"Magenta")

10.}

相关文档
最新文档