class legotime{ def apply = "this is apply method" /** * 1 :scala中的toString和java中的toSting 一样------所有的对象都有這个方法, * 因为toString 是 java中object的方法,而全部的类都是继承于Object這个类 * 2: java中的toString是 * public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } * 所以toString方法默认得到类型名字+hashCode * 如果要不同的结果,那么就应该 override 這个方法 * * 3:toString 方法一定是返回的是String类型 */ override def toString = "this is toString method" } object applyAndToString { def main(args: Array[String]) { val lego1 = new legotime println(lego1)//this is toString method val lego2 = new legotime() println(lego2)//this is toString method //在测试下面代码的时候 legotime的apply方法先不加括号 //val lego3 = new legotime()() //println(lego3)//发现报错,提示 : legotime does not take parameters /** * 当给apply方法加上括号的时候就不会报错 */ val lego4 = new legotime()() println(lego4)//this is apply method } }
scala中 toString和apply的区别
最新推荐文章于 2021-09-28 10:50:22 发布