单例对象: //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")) } }