1、scala的类自动提供getter和setter方法,用于设置和获取类中的值
class person{
var age=0
}
对于scala,字段的private和public属性决定了getter和setter的属性。在上面的scala类person中,getter和setter分别叫做age
和age_=,比如
println(person.age) person.age=21 我们还可以自己定义get和set方法,
class person {
private var privateage=0
def age=privateage
def age_=(newvalue:int) {
if (newvalue>privateage) privteage=newvalue
}}
总结:如果字段是私有的,则get和set方法也是私有的
如果字段是val,只有get方法
如果不需要任何的get或者set,可以将字段声明为private[this]
scala容许你将访问权赋予指定的类,private[类名]可以定义仅有指定类的方法可以访问的给定的字段(只有内部自己访问自己,重新定义的对象也不能访问)
这里的类名必须是当前定义的类,或者包涵该类的外部类
2、bean属性
3、辅助构造器
辅助构造器的名称为this,每一个辅助构造器都必须以一个对先前已定义的其它辅助构造器或者主构造器的
调用开始
一个类如果没有主构造器,则会自动构造无参的构造器。可以利用下列的三种方式构建对象:
val p1=new Person //主构造器
val p2=new Person("Fred") //第一个辅助构造器
val p3=new Person("Fred",24) //第二个辅助构造器
4、主构造器
在scala中,类也接受参数,就像方法一样,这就是主构造器的简单认识。
5、主构造器的私有
class person private() {......}
只能用辅助构造器构造person对象(不用管具体意思,反正只能用辅助构造器)