Scala中的类和对象

40 阅读1分钟

创建类和面向对象

object inout32 {
  class Person() {}

  class Student() {
    var name: String = "小花"
    var age: Int = 18
  }

  def main(args: Array[String]): Unit = {
    val p1 = new Person()
    val s1 = new Student()
    println(s1.name)
    s1.name = "小花花"
    println(s1.name)
  }
}

类的属性和方法

object inout33 {

    class Student(){
    var name:String = "小花"
    var age:Int = 18
    def say(): Unit = {
      println(s"${name},${age}")
    }
  }
  def main(args:Array[String]):Unit = {
    val s1 = new Student()
      s1.say()

  }
}

带参数的构造器(构造函数)

object inout34 {
  class Student(var name:String = "小花",var age:Int = 18) {
    println("Student......被调用了....")
    def say():Unit = {
     println(s"${name},${age}")
  }
}
  def main(args:Array[String]): Unit = {
  val s1 = new Student()
  s1.say()
  val s2 = new Student("小明",19)
  s2.say()
  }
}

求三角形的面积并判断能否构成一个三角形

object inout35 {
  class Triangle(var a:Double = 1.0,var b:Double = 1.0,var c:Double= 1.0) {
    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} ${c} ${c}不能构成一个三角形")
        return -1
      }
    }
  }
  def main(args:Array[String]):Unit = {
    val t1 = new Triangle(3,4,7)
    println(t1.getArea())
    val t2 = new Triangle(3,4,3)
    println( t2.getArea())
  }

构造器的默认值

object inout36 {
  class Student(var name:String,var age:Int,var gender:String="男",var nav:String="汉族") {
    def say(): Unit = {
      println(s"${name},${age},${gender},${nav}")
    }

  }
  def main(args:Array[String]):Unit = {
    var s1 = new Student("小明",19)
    s1.say()
    var s2  = new Student("小花",18,"女","回族")
    s2.say()
  }
}

构造器中的参数类型

object inout37 {
  class Student(val name:String,var age:Int,gender:String="男") {
    def say(): Unit = {
      println(s"${name},${age},${gender}")
    }
  }
  def main(args:Array[String]): Unit = {
    var s1 = new Student("小明",19)
    s1.age = 20
    s1.say()
  }
}