两张图说明:


这个是不带[this]:

class OOPInScala {}

class Person{
  var name:String =_
  val age = 27
  private val gender = "male"
  def testPrivate(other : Person){println(other.gender)}
}

object OOPInScala{
  def main (args: Array[String]) {

    val p1 = new Person
    val p2 = new Person
    p1.name = "rock"
    p2.name = "book"
    p1.testPrivate(p2)
    //println(p1.name + ":" + p1.gender)
  }
}

/*
* 返回: male
*/

这个是[this] :

class OOPInScala {}

class Person{
  var name:String =_
  val age = 27
  private[this] val gender = "male"
  def testPrivate(other : Person){println(other.gender)}
}

object OOPInScala{
  def main (args: Array[String]) {

    val p1 = new Person
    val p2 = new Person
    p1.name = "rock"
    p2.name = "book"
    p1.testPrivate(p2)
    //println(p1.name + ":" + p1.gender)
  }
}
/*
* 报错: value gender is not a member of Person
*/