scala中访问控制与方法重写

39 阅读1分钟

private

private:私人的,私有的

private 修饰之后,它就是私有的,在类的外部无法被访问,只能在内部被访问。

基本例子

//private:私人的,私有的

//private 修饰之后,它就是私有的,在类的外部无法被访问,只能在内部被访问。

class Student(var name:String,var age:Int) {

  //私有属性
  private val phoneNum:String="135xxxxxxx"

  //私有方法
  private def hobby(): Unit = {
    println(s"我的个人爱好是隐私信息.....${phoneNum}")
  }

  def sayHelllo():Unit={
    println(s"我是${name},今年${age}")

    hobby() //在类的内部,可以访问私有成员
  }

}
def main(args: Array[String]): Unit = {
  // 实例化类的对象 stu
  // new 的时候,就会自动调用一次构造函数
  val stu=new Student("小花",18)
  stu.sayHelllo()
}     //stu.hobby()  报错!!

toString

打印类的对象的时候,输出的内容不好看,此时可以通过重写toString方法来实现。

基本例子

//目标:让对象被打印的时候,输出信息更友好一些
//做法:重写 toString 方法
//在使用println输出一个对象的时候,它会自动调用toString方法,并输出这个返回值!
class Student(var name: String,var age: Int) {

  override def toString: String =s"Student(${name},${age})"

}
def main(args: Array[String]): Unit = {
  val stu1=new Student("小花",18)
  val stu2=new Student("小明",19)
  //打印输出一个对象,输出的信息不友好。
  //level02.class03$Student@2133c8f8
  //level02.class03$Student@43a25848
  println(stu1)
  println(stu2)
}