认识class

33 阅读1分钟

1.class的基本概念

2.创建类和对象

代码:

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

    //方法
    // 定义方法和定义函数是一样的
    def sayHello() = {
      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)
  }
}

(1)带有构造器的格式 代码:

import basic21.Student

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

  def main(args: Array[String]): Unit = {
    //new Student()
    // 1.调用构造器,第5行
    // 2.没有传入相关的参数,使用默认值。
    val st1 = new Student()
    println(st1.name)

    // new Student("小明",19)
    // 1.调用构造器,第5行。
    // 2.传入相关的参数
    val st2 = new Student("小明",19)
    println(st2.name)
  }
}

(2)计算三角形的面积 代码:

object basic23 {
  //面向对象编程的三个特点
  //封装 ,继承 ,多态
  class Triangle(a:Double, b:Double, c:Double) {
    // 计算面积
    def getAera(): Double = {
      //能否根据三条边长,来计算面积? 海伦公式
      var s = (a+b+c)/2
      s = s*(s-a)*(s-b)*(s-c)
      return Math.sqrt(s)  //Math.sqrt(4) ==> 2 就是开平方操作
    }
  }

  def main(args: Array[String]): Unit = {
    //Triangle表示一个三角形类。
    //Triangle(边长1 ,边长2, 边长3)
    val t1 = new Triangle(3,4,5)
    println(t1.getAera())  //获取面积

    val t2 = new Triangle(4,4,4)
    println(t2.getAera())  //获取面积
    
    val t3 = new Triangle(1,1,3)
    println(t3.getAera())  //获取面积
    //当边长不满足构成三角形的条件时,运行结果为NaN

  }
}