scala中访问控制与方法重写

37 阅读1分钟

1private

默认情况下,类的属性在可以通过对象.属性名的方式来获取,如果不希望在类的外部被访问,可以用private来修饰

格式 class 类名 private 属性 private 方法

class Student(){

  private val name:String;

}

object Test{

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

    val s = new Stuent()  
s.name // 错误~~~~

  }

}

二判断类和对象的关系

方法1: 对象.getClass()

方法2:对象.isInstanceof[类]

println("s".getClass())  
println(p1.isInstanceof[Person])

3重写toString

定义toString方法

你可以在类的内部直接定义toString方法。这个方法通常不需要任何参数,并且返回一个String类型的结果。

override def toString: String = {

    s"Person(name: $name, age: $age)"

  }

4判断两个对象是相等的?

两个对象做比较==时,会自动调用equals方法。我们可以重写equals方法,并自己定义两个对象相等的标准。

override def equals(obj: Any): Boolean = {

     true/false  
if (obj == null || obj.getClass != this.getClass) return false

    // 类型转换和字段比较

    val other = obj.asInstanceOf[Student]

    (this.ID == other.ID) && (this.name == other.name)

}