scala中的类和对象

26 阅读1分钟

class

[释]: 类是属性行为的集合。

(1) 属性也叫成员变量:名词,用来描述事物的外在特征

(2) 行为也叫成员方法:动词,表示事物能做什么

object zz2 {
  // private: 私人的,私有的

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

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

    // 私有属性
    private val phoneNum:String = "136xxxxx"

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

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

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

private关键字

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

格式

private 属性

private 方法

object zz3 {
  // 目标:让对象被打印的时候,输出信息更友好一些
  // 做法:重写 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 = {
    // 实例化类的对象 stu
    // new 的时候,就会自动调用一次构造函数
    val stu1 = new Student ("小花", 18)
    val stu2 = new Student ("小明", 19)
    // 打印输出一个对象,输出的信息不友好。
    // Level02.class03Student@2133c8f8
    // Level02.class03$Student@43a25848
    println (stu1)
    println (stu2)
  }
}