直接通过object定义
object w34 {
object myschool {
val name:String="学校"
def say():Unit = {
println(s"say:${name}")
}
}
def main(args: Array[String]): Unit = {
myschool.name
myschool.say()
}
}
类(Class)和对象(Object)同名:且在同一个文件中,它们互为伴生关系
object w35 {
class Student(private val password:String) {
private def validatePassword(input:String):Boolean = {
input == password
}
}
object Student {
def check(stu:Student, pwd:String):Boolean = {
stu.validatePassword(pwd)
}
}
def main(args: Array[String]): Unit = {
val stu1 =new Student("12345")
if( Student.check(stu1,"12345")){
println("验证通过")
}
}
}
单例模式:一个类(class)只能有一个对象!
object classw36 {
class Student private(var name: String, var age: Int) {
}
object Student {
private val ins = new Student("小花", 18)
def getInstance: Student = ins
}
def main(args: Array[String]): Unit = {
val stu1 = Student.getInstance
val stu2 = Student.getInstance
println(stu1 == stu2)
}
}