【scala】 scala 类 (五)
1、scala类
1.class 关键字
2.var 属性 默认生成getter/setter 方法
3.val 属性 默认生成getter 方法
4. 自定义getter /setter 方法 , property 和 proeprty_ 方法来表示 getter 和setter方法
5. 主构造函数 和辅构造函数的定义使用
6.使用 @BeanProperty 来生成 getter/setter方法
7. 重写toString 方法 ,利用scala字符串插值来格式化输出
import scala.beans.BeanProperty /** * @author xwolf * @date 2017-04-12 16:52 * @since 1.8 */ class Person { var age:Int=0 //直接定义属性 var name:String="" val hello:String="hello" private var initState:Int=0 @BeanProperty var gender:Int=0 //性别 def this(name :String){ //辅助构造器 this() // 主构造器 this.name=name } def this(name:String,age:Int){ //辅助构造器 this(name) this.age=age } def state=initState //getter 方法 def state_=(newState:Int): Unit ={ //setter 方法 initState=newState } def check(age:Int):Boolean={ if (age<0 || age>150) false else true } //override 重写toString 方法 //s 是字符串插值;Scala 提供了三种创新的字符串插值方法:s,f 和 raw override def toString = s"Person($age, $name)" }
测试类:
/** * @author xwolf * @date 2017-04-12 16:40 * @since 1.8 */ object Clazz { def main(args: Array[String]): Unit = { // 创建对象 val person = new Person person.age = -21 person.name="Hello" println(person.hello) val check= person.check(person.age) if (!check) println("年龄不合法") else println(person) person.state=12 println(person.state) //通过构造器创建对象 val cperson =new Person("老万") println(cperson) val dperson = new Person("万里云",10) println(dperson) //@BeanProperty 访问 person.setGender(1) println(person.getGender) } }
参考资料: