【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)
}
}
参考资料:

浙公网安备 33010602011771号