(一)面向对象的相关概念
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"{age}" )
}:Unit = 不用打,写大括号会自动输入
}
在main中可var d1 = new.类名
d1.Demo()--->name age
带参数的构造器
可将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("不能构造三角形")
}
}
}