一、 編寫一個Conversions對象,加入inchesToCentimeters,gallonsToLiters和milesToKilometers方法java
object Conversions{ def inchesToCentimeters()={} def gallonsToLiters()={} def milesToKilometers()={} }
二、前一個練習不是很面向對象。提供一個通用的超類UnitConversion並定義擴展該超類的InchesToCentimeters, GallonsToLiters和MilesToKilometers對象app
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()={} }
三、 定義一個擴展自java.awt.Point的Origin對象。爲何說這實際上不是個好主意?(仔細看Point類的方法) ide
四、定義一個Point類和一個伴生對象,使得咱們能夠不用new而直接用Point(3,4)來構造Point實例函數
class Point(val x:Int,val y:Int){ override def toString:String="x="+x+",y="+y } object Point{ def apply(x:Int,y:Int)={ new Point(x,y) } }
五、編寫一個Scala應用程序,使用App特質,以反序打印命令行參數,用空格隔開。舉例來講,scala Reverse Hello World應該打印World Hello命令行
object Reverse extends App{ args.reverse.foreach { x=>print(x+" ") } }
六、編寫一個撲克牌4種花色的枚舉,讓其toString方法分別返回♣,♦,♥,♠ scala
object myColor extends Enumeration{ val meihua=Value("♣") val fangzhuan=Value("♦") val red=Value("♥") val black=Value("♠") override def toString:String={ var c="" myColor.values.foreach { x => c+=x+" " } c } }
七、實現一個函數,檢查某張牌的花色是否爲紅色 code
object myColor1 extends Enumeration{ val meihua=Value("♣") val fangzhuan=Value("♦") val red=Value("♥") val black=Value("♠") def isRed(x:String):String={ if(x==myColor1.red||x==myColor1.fangzhuan) "該花色是紅色" else "該花色不是紅色" } }
八、編寫一個枚舉,描述RGB立方體的8個角。ID使用顏色值(例如:紅色是0xff0000)對象
object RGB extends Enumeration with App{ val Purple = Value(0xff00ff,"Purple") val Yellow = Value(0xffff00,"Yellow") val Red = Value(0xff0000,"Red") val Black = Value(0x000000,"Black") val Green = Value(0x00ff00,"Green") val Blue = Value(0x0000ff,"Blue") val White = Value(0xffffff,"White") val Cyan = Value(0x00ffff,"Cyan") override def toString:String={ var c="" RGB.values.foreach { x => c+=x } c } }