类Scala

52 阅读1分钟

面向对象的三大特征

1.封装
2.继承
3.多态

var 和 val有何区别 请看如下代码

object Base021 {
  class Person() {}
  class Student() {
  //在类中,定义成员变量
  // var val 修饰的变量有什么区别
  // val 不可修改
  // var 可修改

  var name: String = "小花"
  var age: Int = 18
}
  def main(args: Array[String]): Unit = {
    // 2.实例化对象
    val p1 = new  Person()

    val s1 = new Student()

    // 访问成员变量
    println(s1.name)
    // 修改成员变量
    s1.name = "小花花"
    print(s1.name)

  }
}
object Base022 {
  //把功能都封装在class中
  // 1. 属性
  // 2.方法val
  // 3.辅助构造器var
  class Student() {
    // 1.类的属性  变量
  var name: String = "小花"
  var age: Int = 18

    //2.类的方法  函数
    def say(): Unit = {
      println(s"${name},${age}")
    }
}
  def main(args: Array[String]): Unit = {
    // 2.实例化对象
    val s1 = new Student()
    s1.say()


  }
}

如何用Scala代码求三角形的面积

object Base024 {
  // 给封装一个三角形
  // 给中学生使用,根据三条边
  // 2.求三角形的面积
  // 3.判断是否是一个三角形
  class Triangle(var a: Double = 1.0, var b: Double = 1.0, var c: Double = 1.0) {
    // println(s"${a} ${c} $[c]")
    //检查是否构成三角形,结果是boolean
    def check(): Boolean = {
      // 构成三角形的条件是:任意两边之和 > 第三边
      return a + b > c && b + c > a && a + c > b
    }

    //计算面积: 根据三角形的三遍计算面积
    def getArea(): Double = {
      if (check()) {
        var s = (a + b + c) / 2
        s = Math.sqrt(s * (s - a) * (s - b) * (s - c))
        return s
      } else {
        println(s"${a} ${b} ${c} 不能构成一个三角形")
        return -1
      }
    }
  }

  def main(args: Array[String]): Unit = {

  }

  val t1 = new Triangle(3, 4, 7) // 6
  println(t1.getArea())

  val t2 = new Triangle(3, 4, 3) // 6
  println(t2.getArea())

}