scala中访问控制与方法重写

47 阅读1分钟

private:私人的,私有的

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

案例:

object class01 {
  // private:私人的,私有的
  // private: 修饰之后,它就是私有的,在类的外部无法被访问。只能在类的内部被访问。
  class Student(var name:String,var age:Int) {
    // 私有属性
    private val phoneNum:String="136****"
    // 私有方法
    private def hobby():Unit={
      println(s"我的个人爱好是隐私信息.....${phoneNum}")
    }


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

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

  def main(args: Array[String]): Unit = {

    val stu =new  Student("小花",18)
    stu.sayHello()// stu.sayHello() 报错!


  }
}

toString

目标:让对象被打印的时候,输出信息更友好一些

做法:重写 toString方法

在使用println输出一个对象的时候,他会自动调用toString方法,并输出这个方法的返回值!

案例:

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

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


  }

  def main(args: Array[String]): Unit = {

    val stu1 = new Student("小花", 18)
    val stu2 = new Student("小明", 19)
    // 打印输出一个对象,输出的信息不友好
    //    level02.class03$Studen@2133c8f8
    //    level02.class03$Studen@43a25848

    println(stu1)
    println(stu2)
  }
}