面向对象的三大特征
1.封装
2.继承
3.多态
var 和 val有何区别 请看如下代码
object Base021 {
class Person() {}
class Student() {
//在类中,定义成员变量
// var val 修饰的变量有什么区别
// val 不可修改
// var 可修改
var name: String = "小花"
var age: Int = 18
}
def main(args: Array[String]): Unit = {
// 2.实例化对象
val p1 = new Person()
val s1 = new Student()
// 访问成员变量
println(s1.name)
// 修改成员变量
s1.name = "小花花"
print(s1.name)
}
}
object Base022 {
//把功能都封装在class中
// 1. 属性
// 2.方法val
// 3.辅助构造器var
class Student() {
// 1.类的属性 变量
var name: String = "小花"
var age: Int = 18
//2.类的方法 函数
def say(): Unit = {
println(s"${name},${age}")
}
}
def main(args: Array[String]): Unit = {
// 2.实例化对象
val s1 = new Student()
s1.say()
}
}
如何用Scala代码求三角形的面积
object Base024 {
// 给封装一个三角形
// 给中学生使用,根据三条边
// 2.求三角形的面积
// 3.判断是否是一个三角形
class Triangle(var a: Double = 1.0, var b: Double = 1.0, var c: Double = 1.0) {
// println(s"${a} ${c} $[c]")
//检查是否构成三角形,结果是boolean
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) // 6
println(t1.getArea())
val t2 = new Triangle(3, 4, 3) // 6
println(t2.getArea())
}