Scala中的类和对象

33 阅读2分钟

(一)面向对象的相关概念

1. 什么是面向对象?

它是一种编程思想,它是基于面向对象的,强调的是以对象为基础完成各种操作。

2. 面向对象的三大思想特点是什么?

(1) 更符合人们的思考习惯

(2) 把复杂的事情简单化

(3) 把程序员从执行者变成指挥者

3. 什么是类class? 类是属性行为的集合。

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

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

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

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

(1) 封装

(2) 继承

(3) 多态

2.创建类与对象

在Scala中,用class创建类,用new来创建对象

(定义类) class 类名 ("此括号在scala中可不加"){

val name: String = "..."(类的属性)

var age: Int = ...

}

(定义对象)

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

var d1 = new.类名

println(d1.name)(导入类中的数据String:name)

println(d1.age)(导入类中的数据Int:age) d1.age = ...(更改var age的变量)

}

在类中,可用def函数方法

class 类名{

var name: String = "..."

var age: Int = ...

def Demo(): Unit = {

println(s"name{name} {age}" )

}:Unit = 不用打,写大括号会自动输入

}

在main中可var d1 = new.类名

d1.Demo()--->name age

带参数的构造器

image.png

可将class{}中的内容改到class()中填写,以便于后续new中更改属性

用类函数封装三角形类,给三条边判断能否构造三角形

object txy27 {
  class Demo(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 && a+c>b && b+c>a
    }
  }
  def main(args: Array[String]): Unit = {
    println("请输入第一条边a")
    val a = scala.io.StdIn.readDouble()
    println("请输入第二条边b")
    val b = scala.io.StdIn.readDouble()
    println("请输入第三条边c")
    val c = scala.io.StdIn.readDouble()
    
    val t1 = new Demo(a, b, c)
    if (t1.check()){
      println("能构造三角形")
    } else {
      println("不能构造三角形")
    }
  }
}