码迷,mamicode.com
首页 > 其他好文 > 详细

Scala学习(四)

时间:2015-10-13 17:27:13      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

抽象类定义:abstract class Element{ def contents:Array[String]; def height = contents.length}

定义无参数方法:如果仅提供对象的某个数据的访问(没有副作用的方法),那么久省略括号。定义成无参数方法。

如果无参数方法用用到的地方较多并且比较频繁,建议把无参数方法def height = contents.length变成val height = 

contents.length的字段值。两者的区别是:因为字段值在类初始化的时候被预编译,而方法调用在每次调用的时候都需要计算,

另一方面,使用字段需要为每个Element对象分配更多空间。所以用无参数方法还是字段值看情况而定。

在scala中字段和方法属于相同的命名空间。这让字段可以重写无参数方法。

class WontCompile{ private var f = 0; def f = 1;}//编译无妨通过,因为字段和方法重名了。

java为定义准备了4个命名空间(分别是字段,方法,类,包),scala仅有2个命名空间(值(字段,方法,包,单例对象),类型(类和特质名))

Scala学习(四)

标签:

原文地址:http://my.oschina.net/u/2300159/blog/516367

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!