单例对象:
//object 定义一个单例对象
object Mytools{
//属性
var pi =3.14
//方法
def getArea(r:Int):Double={
pi * r * r
}
}
//测试类
object TestObject {
//入口函数
def main(args: Array[String]): Unit = {
//直接访问单例对象
//对象.属性 | 对象.方法()
println(3*Mytools.pi)
println(Mytools.getArea(2))
}
}
伴生类和伴生对象
package Test0
//伴生类
class Person(var userName:String,private val password:String){
//私有方法
private def validatePassword(input: String):Boolean={
input == password
}
}
//伴生对象
object Person{
def check(u:Person,pwd:String):Boolean={
//validatePassword是私有的方法
//但是,在伴生对象中,还是可以的!!!
u.validatePassword(pwd)
}
}
object TestClassAndObject {
def main(args: Array[String]): Unit = {
var p1 = new Person("小明","1234567")
println(Person.check(p1,"1234567"))
}
}