1.类和对象的基本概念
1.1 类:class。类是属性和行为的集合。
1.2 对象:面对对象。它是一种编程思想,它是基于面向对象的,强调的是以对象为基础完成各种操作。
面对对象的三大特征:
1. 封装
2. 继承
3. 多态
2.创建类和对象
在Scala中,用class来创建类,用new来创建对象。
3.下面是一些基本的例子
- 基本结构
object basic19 {
// 1.定义一个类
// 类名:首字母大写
// class 类名(){}
class Student() {
//属性
//定义属性和定义变量一致
var name:String="小花"
var age:Int=18
//方法
//定义方法和定义函数一样
def sayHello()={
println(s"我是${age}岁的${name}")
}
}
// new class会发生什么
//会调用一次 构造器 代码
// 构造器 ====class
// 构造器的作用:生产对象
def main(args: Array[String]): Unit = {
//2. 创建对象(实例化对象)
// 对象名= new 类名()
val st1=new Student()
//通过 对象、属性名 来访问地址
println(st1.name)
//通过 对象、方法名() 来调用方法
st1.sayHello()
// val st2=new Student()
// println(st2)
}
}
- 案例一(简单输出名字)
object basic20 {
// 带参数的构造器(构造函数)
class Student(var name:String="小花",var age:Int=18) {
//方法
//定义方法和定义函数一样
def sayHello()={
println(s"我是${age}岁的${name}")
}
}
def main(args: Array[String]): Unit = {
//new Student()
//1. 调用构造器,第3行。
//2. 没有传入相关参数,使用默认值
val st1=new Student()
println(st1.name)
//new Student("小明",19)
//1. 调用构造器,第3行
//2. 传入相关参数
val st2=new Student("小明",19)
println(st2.name)
// val st2=new Student()
// println(st2)
}
}
- 案例二(求三角形的面积)
object basic21 {
//面向对象编程的三个特点
//封装,继承,多态
class Triangle(a:Double,b:Double,c:Double) {
//计算面积
def getAera():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 = {
//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,4)
println(t3.getAera()) //获取面积
}
}