函数调用

50 阅读1分钟
class Student(var name:String,val age:Int) {
  println("student......")
  def this()={
    this("未知",18)
    println("辅助构造器被调用了...")
  }
  def this(age:Int)={
    this("未知的",age)
  }
  def sayHi():Unit={
    println(s"我是${name},我今年${age}")
  }
}




object eui1 {
  def main(args: Array[String]): Unit = {
    val stu1 =new Student("小花",18)

    stu1.sayHi()

    stu1.name="小花花"
    stu1.sayHi()
  }

}

输出结果

image.png

package level2




object eui2 {
  class Student(val name:String,val age:Int) {
    // private:私有的,不对外公布,不对外发布
    private val hobbies:String="躲在被子里面,看恐怖小说"
    private def hobby():Unit={
      println(s"${hobbies}")

    }

    def sayHi(): Unit = {
      println(s"${name},${age}")
      hobby()
    }
  }
  def main(args: Array[String]): Unit = {
    val stu=new Student("小花",18)
    stu.sayHi()
  }
}

输出结果

image.png

object eui3 {
  //判断类和对象的关系?亲子鉴定?

  //方式1 :对象.getClass()        //爹
  //方式2:对象.isInstanceOf[类]  //DNA对比
 
 class Student(){}
  class teacher(){}
  def main(args: Array[String]): Unit = {
    val age:Int=1
    val stu=new Student()
    println(stu.getClass)
    println(age.getClass)
    println(stu.isInstanceOf[Student])

    println(stu.isInstanceOf[teacher])
  }
}

输出结果

image.png

object eui4 {
  //目标:改进类的代码,让它在println的时候,输出的信息更友好一点

  // 重写 toString方法
  // (1)  override 重写,覆盖
  //(2) tostring 方法
class Student(var name :String,var ae:Int) {
    override def toString: String = s"姓名:${name}"
  }

  def main(args: Array[String]): Unit = {
    val stu1=new Student("小花",18)
    val stu2=new Student("小明",18)

    println(stu1)
    println(stu2)
  }
}

输出结果

image.png

object eui5 {
  class Student(val id: String, val name: String, val age: Int) {
    // 改写 equals 方法
    // 在使用 == 判相等时,会自动调用。
    // 如果返回true,则相等
    // 如果返回false,则不相等
    override def equals(obj: Any): Boolean = {
      println(s"比较是否相等...... ${this.id},${this.name},")
      //把obj当做Student
      val other = obj.asInstanceOf[Student]
      this.id == other.id && this.name == other.name
    }
  }


    def main(args: Array[String]): Unit = {
      val stu1 = new Student("20241001", "小花", 18)
      val stu2 = new Student("20241001", "小花", 19)
      if (stu1 == stu2) {
        println("他们是同一个人")
      } else {
        println("不是同一个人")
      }
    }
  

}

输出结果

image.png

object eui6 {
  // 链式
  //arr1.map(x=>2*x).filter(x=>x>5).foreach(println)


  class Student {
    def sayHi(): Student = {
      println("sayHi")
      this
    }

    def sayHello(): Student = {
      println("sayHello")
      this // 返回当前对象
    }
  }


    def main(args: Array[String]): Unit = {
      val stu1 = new Student()

      stu1.sayHi().sayHello()


    }


}

输出结果

image.png

[成功并不能用一个人达到什么地位来衡量,而是依据他在迈向成功的过程中,克服了多少困难和障碍。]