面向对象

26 阅读1分钟

一,定义类

object Base29 {
  class Person(){}
  class Student(){}

  def main(args: Array[String]): Unit = {
    val p1 = new Person()

    val s2 = new Student()

    println(p1)
    println(s2)
  }
}

实例化对象

object Base30 {
  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 Base31 {
 // 2,实例化对象
  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 Base32 {
  //带参数的构造器(构造函数)
  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 Base33 {
  class Triangle(val a:Double = 1.0,val b:Double = 1.0,val 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} ${b} ${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 Base34 {
  //有默认值的项
  //     性别:男
  //      名族:汉
  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 Base35 {
  class Student(var name:String ,var age:Int  , geader:String="男"){
   def say(): Unit = {
     println(s"${name},${age},${geader}")
   }
  }

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

  val s1 = new Student("小明",19)
  s1.age = 20
  s1.say()
  }
}

辅助构造器

屏幕截图 2025-09-28 113251.png