构造器
在scala中定义类用class修饰,这个类默认有一个空的构造器,定义在类的名称后面的构造器为主构造器,类的主构造器中的属性会定义为类的成员比变量,
class Student(name: String, age: Int) {
  var sex: String = _
  //定义一个辅助构造器 def this()
  def this(name: String, age: Int, sex: String) {
    this(name, age)
    this.sex = sex
  }
}
如果主构造器中的属性没有被val或者var修饰的话,不能被使用
属性被val修饰,相当于对外提供了get方法
var 修饰,相当于对外提供了get和set方法
package twodaystudy
class Student(var name: String,var age: Int) {
    //不是成员变量的要声明
  var sex: String _
  //定义一个辅助构造器 def this()
  def this(name: String, age: Int, sex: String) {
    //辅助构造器里面必须调用主构造
    this(name, age)
    this.sex = sex
  }
}
类的访问权限
在构造器前加private 可以表示构造器访问权限
类的成员属性访问权限
如果类的主构造器中成员属性是private修饰的,它的get和set方法都是私有的,外部不能访问
类的构造器访问权限
在构造器钱加修饰权限,private在主构造器之前,说明该类主构造器是私有的,外部类和对象不能访问,也适用于辅助构造器
类的访问权限
类前加private[this],表示在该包下可以使用,子包下不可见
private[包名],表示在包以及子包下都可见
伴生类和伴生对象
对象名和类名相同,伴生对象可以访问伴生类中的私有变量和方法
 
 
                     
            
        













 
                    

 
                 
                    