Scala中的类和对象

39 阅读2分钟

1.面向对象的三大特征是

(1) 封装

(2) 继承

(3) 多态

2.什么是类class 类是属性和行为的集合。

(1) 属性也叫成员变量:名词,用来描述事物的外在特征

(2) 行为也叫成员方法:动词,表示事物能做什么

举例:学生有姓名和年龄这些是属性,学生要学习,要吃饭这些是行为。

scss
 体验AI代码助手
 代码解读
复制代码
object basic28 {

  class Student(){}

  def main(args: Array[String]): Unit = {
    // 2. 创建对象(实例化对象)
    // 对象名 =new 类名()

    val st1 = new Student()
    println(st1)

    val st2 = new Student()
    println(st2)
  }
}

结果:

屏幕截图 2025-09-29 091752.png

(一)定义和访问成员变量****

案例

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

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

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

kotlin
 体验AI代码助手
 代码解读
复制代码
object basic28 {
  class Student() {
      var name:String ="小花"
      var age:Int =18
    def sayHello()={
      println(s"我是${age}岁的${name}")
    }
    }
  def main(args: Array[String]): Unit = {
    val st1 = new Student()
    println(st1.name)

    st1.sayHello()

    //val st2 = new Student()
    // println(st2)
  }
}

结果:

屏幕截图 2025-09-29 093135.png

输出小花小明
scss
 体验AI代码助手
 代码解读
复制代码
object basic29 {
  class Student(var name:String="小花",var age :Int = 18) {
    def sayHello()={
      println(s"晚上${age}岁的${name}")
    }
  }

  def main(args: Array[String]): Unit = {
    val st1 = new Student()
    println(st1.name)
    val st2 = new Student("小明",19)
    println(st2.name)
  }
}

结果:

屏幕截图 2025-09-29 101600.png

求三角形的面积

scss
 体验AI代码助手
 代码解读
复制代码
object basic30 {
  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)
    }
  }

  def main(args: Array[String]): Unit = {
    var t1 = new Triangle(3,4,5)
    println(t1.getAera())
    val t2 = new Triangle(4,4,4)
    println(t2.getAera())
  }
}

结果:

屏幕截图 2025-09-29 103650.png

求三角形的面积和判断是否是一个三角形

scss
 体验AI代码助手
 代码解读
复制代码
object basic30 {
class Triangle(a:Double,b:Double,c:Double) {
  def getArea():Double={
    if (check()){
      var s=(a+b+c) /2
      s=s*(s-a)*(s-b)*(s-c)
      return Math.sqrt(s)
    } else {
      print("不能构成三角形")
      return 0;
    }
  }
  def check():Boolean={
    return (a+b)>c && (a+c)>b && (b+c)>a
  }
  }
}

  def main(args: Array[String]): Unit = {
    val t1=new Triangle(3,4,5)
    println(t1.getArea())

    val t2=new Triangle(1,1,4)
    println(t2.getArea())
  }

结果: 屏幕截图 2025-09-29 110444.png

案例:

kotlin
 体验AI代码助手
 代码解读
复制代码
object basic32 {
  class User(val phone:String,var pwd:String) {
    var email:String=""
    var name:String=""
    def this (email:String,name:String,pwd:String){
      this("",pwd)
      this.name=name
      this.email =email
    }
    def this(email:String,name:String,pwd:String,phone:String) {
      this(phone,pwd)
      this.name=name
      this.email=email
    }
    def say()={
      println(s"我的信息如下:")
      println(s"姓名:${name}")
      println(s"手机号:${phone}")
      println(s"邮箱:${email}")
      println(s"密码:${pwd}")
    }
  }

结果:

屏幕截图 2025-09-29 113808.png

屏幕截图 2025-09-29 113821.png