package lyzx.com.basic.day02
/**
* scala的伴生对象和伴生类
* 如果某个类和某个object的名字相同则这个类叫做这个对象的伴生类
* 反之叫做这个类的伴生对象,顾名思义就是陪伴你走过一生的对象
*
* scala中没有提供java中类似于是static的关键字以实现静态
* 而伴生对象就解决这个问题,比如Person类的国籍country属性对于中国人来说都是China
* 所以放在伴生对象中,就类似于java中的static变量
*
* 伴生类和伴生对象可以相互访问其中的私有变量
*/
class Person {
def getMyHeadNum(): Int ={
Person.headNum
}
def getMyLegNum(): Int ={
Person.legNum
}
def getMyCountry():String ={
Person.country
}
}
object Person{
println("伴生对象的构造器")
val headNum = 1
val legNum = 2
val country = "China"
}
测试类如下
package lyzx.com.basic.day02
class T4 {
def f1(): Unit ={
val p = new Person
println(p.getMyCountry())
println(p.getMyHeadNum())
println(p.getMyLegNum())
}
}
object T4{
def main(args: Array[String]): Unit = {
val t = new T4
t.f1()
}
}