class的应用

32 阅读2分钟

什么是类 class?类是属性和行为的集合。 (1)属性也叫成员变量:名词,用来描述事物的外在特征 (2)行为也叫成员方法:动词,表示事物能做什么

object bais01 {
  class Student() {
    // 属性
    // 定义属性和定义变量一致
    var name:String = "小花"
    var age:Int = 18

    // 方法
    // 定义方法和定义函数一致
    def sayHello():Unit = {
      println(s"我是${age}岁的${name}")
    }
  }

  def main(args: Array[String]): Unit = {
    // 2.创建对象(实例化对象)
    // 对象名 = new 类名()
    
    val st1 = new Student()
    
    // 通过 对象、属性名来访问属性
    println(st1.name)

    //通过 对象、方法名() 来调用方法
    st1.sayHello()
    
    //val st2 = new Student()
    //println(st2)
  }
}

Triangle表示一个三角形类 Triangle(边长3,边长4,边长5)

object bais02 {
  class Student(var name:String = "小花", var age: Int = 18) {
    // 方法
    // 定义方法和定义函数一致
    def sayHello(): Unit = {
      println(s"我是${age}岁的${name}")
    }
  }

  def main(args: Array[String]): Unit = {
    // nem Student()
    // 1. 调用构造器,第5行

    //new Student("小明",19)
    // 2. 没有传入相关参数,使用默认值
    val st1 = new Student()
    println(st1.name)

  // 1.调用构造器,第5行
    // 2.传入相关参数
    val st2 = new Student("小明",19)
    println(st2)
  }
}
object bais04 {
  // 可以在两个地方写属性
  // 1.构造器的参数列表
  // 2.构造器内部

  // 构造器的参数列表
  // 1.val 表示不可以被修改的属性
  // 2. var 表示可以被修改的属性
  // 3.没有修饰符,不是对象属性,无法访问
  class Triangle(val a:Double,var b:Double,c:Double) {
    val d:Int =1
    val e:Int =2
  }
  def main(args: Array[String]): Unit ={
    val t =new Triangle(1,2,3)
    t.b=2
  }
}
// 主构造器
class User(val phone: String, var pwd: String) {
    var email: String = ""
    var name: String = ""

    // 辅构造器
    constructor(email: String, name: String,pwd:String){
        // 调用一次主构造器
        this("", pwd)
        // 再对其他的属性赋值
        this.name = name
        this.email = email
    }

    // 辅构造器
    constructor(email: String, name: String, pwd: String, phone: String) {
        // 调用一次主构造器
        this(phone, pwd)
        // 再对其他的属性赋值
        this.name = name
        this.email = email
    }

    fun say(): Unit {
        println("我的信息如下:")
        println("姓名:${name}")
        println("手机号:${phone}")
        println("邮箱:${email}")
        println("密码:${pwd}")
    }
}