student()构造函数(构建量),用来创建对象
1.主构造函数 class Student()
2.辅助构造函数,提供更多的方法来构造对象
辅助构造函数
特点:1.名字就是this
2.第一句代码就是调用主构造器
package level02
class Student(var name:String,val age:Int) {
println("Student.........")
//辅助构造函数
//特点:1.名字就是this 2.第一句代码就是调用主构造器
def this()={
this("未知的",18)
println("辅助构造函数被调用了...")
}
def this (age:Int)={
this("未知的",age)
}
def sayHi(): Unit = {
println(s"我是${name},我今年${age}")
}
}
object Class01 {
def main(args:Array[String]):Unit = {
//创建对象。new 会自动调用构建函数
val stu1 = new Student("小花",18)
val stu2 = new Student()
val stu3 = new Student(20)
//调用对象的方法
stu1.sayHi()
//调用对象函数的方法
stu2.sayHi()
stu3.sayHi()
}
}
private:私有的。不对外公布。在外面币可以访问。在家之外的地方,不可以被别人知道...
package level02
object Class04 {
class Student(){}
class Teacher(){}
def main(args:Array[String]): Unit = {
val age:Int = 1
val stu = new Student()
println(stu.getClass)
println(age.getClass)
println(stu.isInstanceOf[Student])
println(stu.isInstanceOf[Teacher])
}
}
package level02
object Class05 {
//目标:改进类的代码,让它在println的时候,输出的信息更有好一点!
//重写toString方法
//(1)override 重写
class Student(var name:String,var age:Int) {
override def toString:String = s"姓名:${name}"
}
def mian(args:Array[String]):Unit = {
val stu1 = new Student("小花",18)
val stu2 = new Student("小明",18)
println(stu1)
println(stu2)
}
}