1.面向对象的三大思想:
(1)更符合人们的思考习惯
(2)把复杂的事情简单化
(3)把程序员从执行者变成指挥者
2.面向对象的三大特征:封装,继承,多态
3.用class来创造类,用new来创建对象
4.private:在类的外部不可访问,表示私有的,在内部还是可以访问private
5.主构造函数:
new class时,会自动调用(构造函数)
主构造函数的定义方式:
class 类名 ([parameter1,parameter2.......]) {
}
package TestC1
class Person(var name:String,var age:Int){
private var gender="女"
//为辅助构造器。名字固定,就叫this。
//辅助构造器的作用:让定义对象更加灵活
def this(name:String,age:Int,gender:String){
this(name,age)
this.gender=gender
}
def singsong(songName:String) : Unit ={
// name="a"
// gender="男"//报错,因为gender是私有化的,在此不可访问也不可修改
println(s"我是$name,$age 岁,性别:$gender 唱歌 $songName")
}
}
object TestClass {
def main(args: Array[String]): Unit = {
var p1 = new Person("小花", 19)
p1.age = 16
//p1.name="小花"
p1.singsong("小清新")
println(p1.name, p1.age)
var p2 = new Person("小明", 20,"男")
p2.singsong("小清新")
}
}
6.辅助构造器一定会调用主构造器。当声明一个类时,只有一个构造器。辅助构造器没有私有化。