Scala讲座:类定义和构造函数

发表于:2011-8-31 14:30

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:fineqtbull    来源:51Testing软件测试网采编

分享:

  由于在类中基本构造函数的参数定义前加上val或var后,对应的实例属性就会被定义,所以原来的属性定义就不需要了。而且,编译器会自动追加用于存取这些属性的方法。Scala中基本上可以去除语句尾部的“;”符号,这里也都去除了。

  • scala> val p1 = new Person("Yu""Guan"new Person("ZheTian""Wu"))  
  • p1: Person = Person@904f75 
  • scala> p1.lastName  
  • res7: String = Guan  
  • scala> p1.spouse  
  • res8: Person = Person@2e879
  •   上述程序中描述对象的字符串比较难解,下面就扩展一下类使他显示姓和名吧。任何对象的文字描述是由对象的最根类Any的toString:String方法来实现的。在各个类中使用自己的实现来覆盖这个方法就可以了,这里的显示格式为[姓:firstName 名:lastName 配偶:没有或(姓:firstName 名:lastName)]。另外,Scala中覆盖父类的方法一定要加上override修饰符。

  • class Person ... { ...  
  • override def toString : String = super.toString + " [姓: " + lastName + " 名: " + firstName + " 配偶: " + (if (spouse != null" ("+ spouse.lastName + "," + spouse.firstName + ")" else "没有") + "]" 
  • ...}
  •   下面是修改后的效果

  • scala> val p1 = new Person("Yu""Guan"new Person("ZheTian""Wu"))  
  • p1: Person = Person@4a0ac5 [姓: Guan 名: Yu 配偶: (Wu, ZheTian)]  
  • scala> p1  
  • res0: Person = Person@4a0ac5 [姓: Guan 名: Yu 配偶: (Wu, ZheTian)]
  •   Scala讲座中类定义和构造函数的内容就到这里。

    33/3<123
    精选软件测试好文,快来阅读吧~

    关注51Testing

    联系我们

    快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

    法律顾问:上海兰迪律师事务所 项棋律师
    版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
    投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

    沪ICP备05003035号

    沪公网安备 31010102002173号