Scala学习3之快学scala第五章习题之构造器

来源:互联网 发布:淘宝云客服通用考试 编辑:程序博客网 时间:2024/05/14 13:46

快学scala第五章习题之构造器:

6.8 创建一个Car类,以只读属性对应制造商,型号名称,型号年份以及一个可读写的属性用于车牌。提供四组构造器。每个构造器fc都要求制造商和型号为必填。型号年份和车牌可选,如果未填,则型号年份为-1,车牌为空串。你会选择哪一个作为你的主构造器?为什么? 

选择四个属性的,其他构造器可以在此基础上直接赋值

代码:

package Chapter5object Car5 {   def main(arg:Array[String]){    var car1=new Car("BWM","A6")    car1.PrintAll()     var car2=new Car("BWM","A6",2000)    car2.PrintAll()     var car3=new Car("BWM","A6","A01")    car3.PrintAll()     var car4=new Car("BWM","A6",2000,"A01")    car4.PrintAll()   }     class Car( val producerName:String,val productName:String,val productyear:Int,var num:String){    def this( producerName:String, productName:String){      this(producerName, productName,-1,"")          }    def this( producerName:String, productName:String,productyear:Int){      this(producerName, productName,productyear,"")    }    def this( producerName:String, productName:String,num:String){      this( producerName:String, productName:String,-1,num)    }    def PrintAll(){      println("producerName:"+producerName+" productName:"+productName+" productyear:"+productyear+" num:"+num)    }  }}

执行结果:

producerName:BWM productName:A6 productyear:-1 num:producerName:BWM productName:A6 productyear:2000 num:producerName:BWM productName:A6 productyear:-1 num:A01producerName:BWM productName:A6 productyear:2000 num:A01



0 0