scala中的类和对象(复习)

40 阅读2分钟

scala中的类

1.class类

1.1. class属性行为的集合。

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

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

2.在Scala中,用class来创建类,用new来创建对象

案例(一)

object class01 {
  // class类
  class Student(var name:String) {
    def sayHello(): Unit={
      println(s"我是${name}")
    }
  }

  def main(args: Array[String]): Unit = {
    // 实例化类的对象
    val stu =new  Student("小花")
    // 调用对象的方法
    stu.sayHello()
  }
}

student 构造函数

1.作用:用来创建对象,new 的时候,就会自动调用一次。

案例(二)

object class01 {
  class Student(var name:String) {
    println("Student构造函数被调用.....")
    def sayHello(): Unit={
      println(s"我是${name}")
    }
  }

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

辅助构造函数

1. new的时候,就会自动调用一次构造函数

案例(三)

object class01 {
  class Student(var name:String,var age:Int) {
    println("Student构造函数被调用.....")
    def this(name:String) = {
      this(name, 15)
    }
    def sayHello(): Unit={
      println(s"我是${name},今年${age}")
    }
  }

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

    // 调用对象的方法
   stu.sayHello()
    val stu1 =new  Student("小明")

    // 调用对象的方法
    stu1.sayHello()

  }
}

构造函数:

(1)主构造函数 (2)辅构造函数

特点:

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

案例(四)

object class01 {
  // class类
  // student 构造函数(构造器),用来创建对象,new 的时候,就会自动调用一次。

//  构造函数:
//  (1)主构造函数
//  (2)辅构造函数
//  特点:名字就叫this,它的代码第一行必须是调用主构造器。可以有多个。
  class Student(var name:String,var age:Int) {
    println("Student构造函数被调用.....")
    // 辅助构造函数1
    def this(name:String) = {
      this(name, 15)
      println("辅助构造函数被调用.....")
    }
  // 辅助构造函数2
  def this(age:Int) = {
    this("未知",age)
    println("辅助构造函数被调用.....")
  }
    def sayHello(): Unit={
      println(s"我是${name},今年${age}")
    }
  }

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

  }
}