复习与练习

34 阅读1分钟

class 类

Student 构造函数(构造器),用来创建对象,new的时候,就会自动调用一次。

构造函数:

(1)主构造函数

(2)辅助构造函数

特点:名字就叫this。它的代码的第一行必须是调用主构造器。可以有多个。



package level02

object l1 {
  //class 类
  //Student 构造函数,用来创建对象,new的时候,就会自动调用一次。
  // 构造函数:主构造函数,辅助构造函数
  class Student(var name:String,var age:Int) {
    println("Student构造函数被调用.....")
    // 辅助构造函数1
    def this(name:String){
      this(name,15)
    }
    // 辅助构造函数2
    def this(age:Int){
      this("未知",age)
      println("构造函数被调用.....")
    }

    def sayHello(): Unit={
      println(s"我是${name},今年${age}")
    }
  }
  def main(args:Array[String]):Unit={
    // 实例化类的对象 stu
    // new 的时候,就会自动调用一次构造函数

    val stu=new Student("小花",18)
    // 调用对象的方法
    stu.sayHello()

    val stu1=new Student("小明")
    stu1.sayHello()

    val stu2=new Student(20)
    stu2.sayHello()

  }

}


private

private: 私人的,私有的

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


package level02

object l2 {
  //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()

  }

}

toString

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


package level02

object l3 {
  // 目标:让对象被打印的时候,输出信息更友好一些
  // 做法:重写 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.class03Student@2133c8f8
    //level02.class03Student@43a25848
    

    println(stu1)
    println(stu2)
  }

}