您的位置:首页 > 其它

《快学Scala》第六章习题解答

2016-05-15 00:11 211 查看
RT。

package com.scalalearn.scala.main
/**
* 快学scala 06习题
*/

//1.编写一个Conversions对象,加入inchesToCentimeters,gallonsToLiters和milesToKilometers方法
object Conversions{
def inchesToCentimeters(input:BigInt):BigInt={
//省略...
input
}

def gallonsToLiters(input:BigInt):BigInt={
//省略...
input
}

def milesToKilometers(input:BigInt):BigInt={
//省略...
input
}
}

//2.前一个不是很面向对象,提供一个通用的超类UnitConversion并定义超类的InchesToCentimeters,GallonsToLiters和MilesToKilometers对象
abstract class UnitConversion{
def transform(input:BigInt):BigInt;
}

object InchesToCentimeters extends UnitConversion{
def transform(input:BigInt):BigInt = {
//省略...
input
}
}
object GallonsToLiters extends UnitConversion{
def transform(input:BigInt):BigInt = {
//省略...
input
}
}
object MilesToKilometers extends UnitConversion{
def transform(input:BigInt):BigInt = {
//省略...
input
}
}

//4.定义一个Point类和一个伴生对象,使得我们不用new而是直接用Point(3,4)来构造Point实例
class Point(px:Int,py:Int){
var x:Int = 0
var y:Int = 0

x = px
y = py
}

object Point{
def apply(px:Int,py:Int):Unit = {
new Point(px,py)
}
}

//6.用一个枚举扑克牌的四种花色
class PokerCard{}

object PokerCard extends Enumeration{
val HEART = Value(0)
val SPADE = Value(1)
val CLUB = Value(2)
val DIAMOND = Value(3)
}

//8.用枚举描述RGB立方体的8个角,ID用色值表示
object RGBCube extends Enumeration{
//我这里就不真的对应色值了;就上4个角和下4个角分别定义一下
val top1 = Value(0)
val top2 = Value(1)
val top3 = Value(2)
val top4 = Value(3)
val bottom1 = Value(4)
val bottom2 = Value(5)
val bottom3 = Value(6)
val bottom4 = Value(7)
}

object LearnScala06 {
//7.写一个检测扑克牌花色是否为红色的函数
def checkColor(pokerCard:PokerCard.Value):Boolean = {
if(pokerCard == PokerCard.HEART || pokerCard == PokerCard.DIAMOND){
true
}else{
false
}
}

def main(args:Array[String]):Unit = {
println("================execise6==================")
val point = Point(3,4)

println("================execise7==================")
println(LearnScala06.checkColor(PokerCard.HEART))
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: