快学Scala习题解答—第五章 类
6 类
6.1 改进5.1节的Counter类,让它不要在Int.MaxValue时变成负数
加个判断就OK了
class Count{ private var value = Int.MaxValue def increment(){if(value < Int.MaxValue) value + 1 else value } def current = value}class BankAccount(val balance:Int = 0){ def deposit(){} def withdraw(){}}class Time(val hours:Int,val minutes:Int){ def before(other:Time):Boolean={ hours < other.hours || (hours == other.hours && minutes < other.minutes) } override def toString():String={ hours + " : " + minutes }}class Time(val hours:Int,val minutes:Int){ def before(other:Time):Boolean={ hours < other.hours || (hours == other.hours && minutes < other.minutes) } override def toString():String={ hours * 60 + minutes }}import scala.reflect.BeanPropertyclass Student{ @BeanProperty var name:String = _ @BeanProperty var id:Long = _}Compiled from "Student.scala"public class Student extends java.lang.Object implements scala.ScalaObject{public java.lang.String name(); Code: 0: aload_0 1: getfield #13; //Field name:Ljava/lang/String; 4: areturnpublic void name_$eq(java.lang.String); Code: 0: aload_0 1: aload_1 2: putfield #13; //Field name:Ljava/lang/String; 5: returnpublic void setName(java.lang.String); Code: 0: aload_0 1: aload_1 2: putfield #13; //Field name:Ljava/lang/String; 5: returnpublic long id(); Code: 0: aload_0 1: getfield #19; //Field id:J 4: lreturnpublic void id_$eq(long); Code: 0: aload_0 1: lload_1 2: putfield #19; //Field id:J 5: returnpublic void setId(long); Code: 0: aload_0 1: lload_1 2: putfield #19; //Field id:J 5: returnpublic long getId(); Code: 0: aload_0 1: invokevirtual #25; //Method id:()J 4: lreturnpublic java.lang.String getName(); Code: 0: aload_0 1: invokevirtual #28; //Method name:()Ljava/lang/String; 4: areturnpublic Student(); Code: 0: aload_0 1: invokespecial #34; //Method java/lang/Object."<init>":()V 4: return}class Person(var age:Int){ age = if(age < 0) 0 else age}class Car(val maker:String,val typeName:String,val year:Int = -1,var carLice:String = ""){}class Employ{ val name:String = "John Q. Public" var salary:Double = 0.0}