/** * 如果在同一个文件中,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) } }