package scala.day01
import scala.beans.BeanProperty
/**
* 注意:@BeanProperty會生成四個方法
* name:String
* name_ = (new Value:String):Unit
* getName():String
* setName(new Value:String):Unit
*
* */
// 這個就可以理解爲是主構造器,主構造器不使用,調用輔助構造器,需要調用this方法
// name是var修飾,有get也有set方法 age是val修飾,只有get方法
class Person(@BeanProperty var name:String,@BeanProperty val age:Int){
//私有的成員,必須進行初始化
private var id = 0
def insert(a:Int):Unit = {id += a}
def current():Int = id
//String 類型的默認值爲null
@BeanProperty var clazz:String=_
//Int 類型的默認值爲0
@BeanProperty var score:Int=_
//定義輔助構造器1
def this(name:String,age:Int,clazz:String){
//調用主構造器的方法,若主構造器爲空,則調用this()
this(name,age)
this.clazz = clazz
}
//定義輔助構造器2
def this(name:String,age:Int,clazz:String,score:Int){
//調用輔助構造器1的構造方法
this(name,age,clazz)
this.score = score
}
override def toString: String = {
"name:"+name+",age:"+age+",class:"+clazz+",score:"+score
}
}
object Person{
def run():String={".....Person半生對象被調用了,,,."}
}
object Oop1 {
def main(args: Array[String]): Unit = {
println(Person.run())
var p1 = new Person("wangwei",22)
var p2 = new Person("wangwei",22,"20152001")
var p3 = new Person("wangwei",22,"20152001",100)
println(p1.toString)
println(p2.toString)
println(p3.toString)
p1.setName("kkkkkkk")
p1.setClazz("201503")
println(p1.toString)
println(p1.getAge)
println(p1.getScore)
}
}