第六章 對象

一、 編寫一個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
	    }
  }
相關文章
相關標籤/搜索