10.面向对象

44 阅读1分钟
什么是面向对象?
它是一种编程思想,它是基于面向对象的,强调的是以对象为基础完成各种操作。

面向对象的三大特征:

    封装
    继承
    多态
object Base34 {
  class Person(){}


  class Student(){}


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

    val s1 = new Student()


    println(p1)
    println(s1)
  }

}

运行结果:Base34Person@43a25848Base34Person@43a25848 Base34Student@3ac3fd8b

案例:
  1.  定义一个Person类,包含姓名和年龄字段

  2.  创建一个名为小花,年龄为18的对象

  3.  打印对象的名字和年龄

object Base36 {



  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()
  }
}

运行结果:

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

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

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

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

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

object Base36 {



  class Student(var name:String ="小花",var age:Int = 18) {
    println("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()
    val s2 = new Student("小明,19")
    s2.say()
  }
}
运行结果:
Student.......被调用了...
小花,18
Student.......被调用了...
小明,19,18

求三角形的面积

判断是否是一个三角形

object Base37 {

  class Triangle(var a:Double = 1.0,var b:Double = 1.0,var c:Double = 1.0) {
    //    println(s"${a} ${b} ${c}")

    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 = {
//    print("请输入第一条边")
//    val a = scala.io.StdIn.readDouble()
//    print("请输入第二条边")
//    val b = scala.io.StdIn.readDouble()
//    print("请输入第三条边")
//    val c = scala.io.StdIn.readDouble()
//
//    val t1 = new Triangle(a,b,c)
    val t1 = new Triangle(3,4,7)
    println( t1.getArea() )

    val t2 = new Triangle(3,4,3)
    println( t2.getArea() )
//    if(t1.check()){
//      println("能构成三角形")
//    }else {
//      println("不能构成三角形")
  }
}

结果:

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