scala类的性质

class Teacher private(var name1:String,var age1:Int){//主构造器(私有)
  //类前面加private表示
  //定义在类后面的是主构造器
  //类的主构造器的属性会定义为类的成员变量,因此,主构造器属性不能和类成员重复
  //如果主构造器成员属性没有val和var修饰的话,该属性不能被访问
  //如果属性用var修饰的话相当于对外提供了get和set方法
  //如果属性用val修饰的话,只提供了get方法
  //如果类的主构造器是private修饰的则表示为私有属性外部不能访问,ser和get方法不能用
    private  var name : String= _
    var age : Int= _
    var sex : String =_
    var pov :String = _
  //定义一个辅助构造器,可以定义多个辅助构造器
  private def this(name:String,age:Int,sex:String)={//private修饰表示私有,外部不能访问
    this(name,age)  //在辅助构造器中必须先调用主构造器
    this.sex = sex
  }

  def this(name:String,age:Int,pov:String,sex:String)={
    this(name,age)
    this.pov=pov
  }
  //定义一个方法 私有方法
  private  def method(a:Int,b:Int):Int ={
    a+b
  }
}


// object Teacher  叫这个类的伴生类
object Teacher{
  def apply(name:String,age:Int):Teacher= {
         new Teacher(name,age)
  }

  def main(args: Array[String]): Unit = {
    //在半生对象中可以访问私有属性和方法
    val teacher: Teacher = new Teacher("大海",31)
    println(teacher.name1)
    println(teacher.method(1,2))
    val dahai: Teacher = Teacher("dahai",29)
    print(dahai.name1)
  }
}

猜你喜欢

转载自blog.csdn.net/hanyong4719/article/details/83150864