1.class的基本概念
2.创建类和对象
代码:
object basic21 {
//
//
class Student() {
//属性
//定义属性和定义变量一致
var name: String = "小花"
var age: Int = 18
//方法
// 定义方法和定义函数是一样的
def sayHello() = {
println(s"我是${age}岁的${name}")
}
}
def main(args: Array[String]): Unit = {
//2.创建对象 (实例化对象)
//对象名 = new 类名()
val st1 = new Student()
//通过对象.属性名 来访问属性
println(st1.name)
//通过 对象.方法名() 来调用方法
st1.sayHello()
val st2 = new Student()
println(st2)
}
}
(1)带有构造器的格式 代码:
import basic21.Student
object basic22 {
//带参数的构造器(构造函数)
class Student(var name:String = "小花", var age:Int = 18) {
//方法
//定义方法和定义函数一致
def sayHello()={
println(s"我是${age}岁的 ${name}")
}
}
def main(args: Array[String]): Unit = {
//new Student()
// 1.调用构造器,第5行
// 2.没有传入相关的参数,使用默认值。
val st1 = new Student()
println(st1.name)
// new Student("小明",19)
// 1.调用构造器,第5行。
// 2.传入相关的参数
val st2 = new Student("小明",19)
println(st2.name)
}
}
(2)计算三角形的面积 代码:
object basic23 {
//面向对象编程的三个特点
//封装 ,继承 ,多态
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) //Math.sqrt(4) ==> 2 就是开平方操作
}
}
def main(args: Array[String]): Unit = {
//Triangle表示一个三角形类。
//Triangle(边长1 ,边长2, 边长3)
val t1 = new Triangle(3,4,5)
println(t1.getAera()) //获取面积
val t2 = new Triangle(4,4,4)
println(t2.getAera()) //获取面积
val t3 = new Triangle(1,1,3)
println(t3.getAera()) //获取面积
//当边长不满足构成三角形的条件时,运行结果为NaN
}
}