函数

20 阅读1分钟
package level02

object class01 {
  //class类
  //student 构造函数 用来创建对象。 new 的时候 就会自动调用一次。
  //构造函数:1.主构造函数 2.辅助构造函数 提供更多创建的方式
//特点:名字就叫this 它的代码的第一行必须是调用主构造器。 可以有多个。
  class Student(var name:String,var age:Int) {
    println("student构造函数被调用")

    //辅助构造函数
    def this(name:String) {
      this(name,15)
    }
//辅助构造器函数
    def this(age:Int) {
      this("未知",age)
      println("辅助构造器函数被调用")
    }
    def sayHello(): Unit ={
      println(s"我是${name}")
    }
  }
  def main(args: Array[String]): Unit = {
    //实例化的对象stu
    //new的时候就会自动调用一次
    val stu = new Student("小花",18)
    //调用对象的方法
    stu.sayHello()

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

object class02 {
 //private:私人的 私有的
  //private 修饰之后 它就是私有的 在类的外部无法访问 只能在类的内部访问
  class Student(var name:String,var age:Int) {
//私有属性
   private val phoneNum:String = "13456778"
    //私有方法
   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()

  }
}
package level02

object class03 {
//目标 让对象被打印的时候 输出信息更友好一点
  //做法:重写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)
   println(stu1)
    println(stu2)


  }
}