面向对象三大特征
- 封装
- 继承
- 多态
- Person就是一个类名,理解为变量名。
- 首字符是大写
- 类名一般来说是名词
object Base28 {
class Person() {}
class Student() {
var name: String = "小花"
var age: Int = 10
}
def main(args: Array[String]): Unit = {
val p1 = new Person()
val s1 = new Student()
println(s1.name)
s1.name = "小花花"
println(s1.name)
}
}
var
object Base29 {
class Student() {
var name: String = "小花"
var age: Int = 18
def say():Unit = {
println(s"${name},${age}")
}
}
def main(args: Array[String]): Unit = {
val s1 = new Student()
println(s1.name)
s1.say()
}
}
object Base30 {
class Student(var name:String = "小花", var age:Int = 18) {
println("Student......被调用了....")
def say(): Unit = {
println(s"${name},${age}")
}
}
def main(args: Array[String]): Unit = {
val s1 = new Student()
s1.say()
val s2 = new Student("小明",19)
s2.say()
}
}
object Base31 {
class Student(var name:String, var age:Int,var gender:String="男",var nav:String="汉族") {
def say(): Unit = {
println(s"${name},${age},${gender},${nav}")
}
}
def main(args: Array[String]): Unit = {
var s1 = new Student("小明",19)
s1.say()
val s2 = new Student("小花",18,"女","回族")
s2.say()
}
}
构造器中的参数的类型
- val定义的属性,不能修改
- var定义的属性,可以修改
- 没有val,也没有var的,不是对象的属性,不能使用语法来访问
object Base32 {
class Student(var name:String, var age:Int,var gender:String="男") {
def say(): Unit = {
println(s"${name},${age},${gender}")
}
}
def main(args: Array[String]): Unit = {
var s1 = new Student("小明",19)
s1.say()
}
}