Scala中的类和对象

4 阅读1分钟

面向对象的相关概念

面向对象的三大思想特点是:

(1) 更符合人们的思考习惯

(2) 把复杂的事情简单化

(3) 把程序员从执行者变成指挥者

面向对象的三大特征是

(1) 封装

(2) 继承

(3) 多态

创建类和对象

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

package level02

object class01 {
  // class 类

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


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

}

构造函数

主构造函数的参数:
1. var 是可以修改的属性

2. val 是不可以修改的属性

3.而没有使用val或者var修饰的,不是属性,不可在外部访问,不可改写。

辅助构造函数:
1. 构造函数(构造器)的作用是创建对象。

2. 构造函数可以有多个。可以有很多个,其他的叫辅助构造函数。

package level02

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 = {
    // 实例化类的对象 stu
    // new 的时候,就会自动调用一次构造函数
    val stu =new Student("小花",18)
    // 调用对象的方法
    stu.sayHello()

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

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

}