/**
* 如果在同一个文件中,object对象和class类的名称相同,则这个对象就是这个类的伴生对象,这个类就是这个对象的伴生类。可以互相访问私有变量。
* 即class T1 是object T1的伴生类 反之为其伴生对象
*/
class T1 {
private var name ="刑天";
def myIntroduction(): Unit ={
T1.introduction(name);
}
//匹配模式,不仅可以匹配值也可以匹配模式或者说类型,例如age:Int就是说如果age(参数age是Any类型)是一个整型值则匹配该项
def myAgeMatch(age:Any):String ={
age match{
case 1 =>"one"
case 18 =>"18岁"
case 20 =>"20岁了"
case age:Int =>"这是一个整型"
case age:String =>"这是一个字符串..."
case _ =>"没有匹配项..."
}
}
}
//在伴生对象里面的方法和属性相当于java中的静态方法和属性 //可以在伴生类里面使用伴生对象的方法和属性
object T1{
private var age = 18;
def introduction(name:String): Unit ={
println("my name is "+name+" ,i'm "+age+" years old");
}
def main(args: Array[String]) {
val t1 = new T1()
t1.myIntroduction()
var description = t1.myAgeMatch(19);
println(description)
}
}