Scala 构造函数.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Scala 构造函数

Scala 构造函数 Scala构造函数 类由类成员 (如字段和⽅法)组成。 字段保存对象的状态,并使⽤ val 或 var 定义。 ⽅法完成对象的计算 务,并使⽤定义关键字 def 。 在Scala 中,类的整个主体是构造函数。 如果构造函数采⽤零参数,则可以省略参数列表。 Scala区分⽤val字段,var字段,private val或private var声明的构造函数和没有varor val 的字段。 参数声明为val 如果构造函数参数声明为val ,Scala只为它⽣成⼀个getter⽅法。 让我们声明⼀个字段为val ,如下所⽰: class Book( val title:String) 因为构造函数字段被定义为⼀个val ,所以该字段的值是不可变的。因此,Scala只⽣ 成getter⽅法,没有setter⽅法。 object Main { def main(args: Array[String]) { class Book( val title:String) val book = ne Book(Scala) println(book); println(book.title ) //book.title = ne title //Error } } 在Scala 中,如果构造函数或⽅法采⽤零参数,则可以省略参数列表。 参数声明为var 如果构造函数参数声明为var ,Scala将⽣成访问器和mutator⽅法。 class Book( var title:String) 所以当你设置字段时,像这样 book.title(ne title) 我们可以改变Book对象的字段,因为它是⽤关键字var声明的。 object Main { def main(args: Array[String]) { class Book( var title:String) val book = ne Book(Beginning Scala) book.title = ne title println(book.title ) } } 参数声明为私有val或var 您可以将 private 关键字添加到 val 或 var 字段,以防⽌getter和setter⽅法⽣ 成。 在这种情况下,字段只能从类的成员内访问: class Book(private var title: String) { def printTitle { println(title) } } val book = ne Book(Beginning Scala) println(book.printTitle ) 参数声明没有val或var 当在构造函数参数上未指定val和var 时,Scala不⽣成getter或setter 。 正如你在这⾥可以看到的,你不能访问书的字段标题。 class Book(title: String) val book = ne Book(Beginning Scala) //book.title //Error 例⼦ 这⾥是Book类,⼀个名为title的构造函数参数,默认值为“Scala” 。 因为参数使⽤默认值定义,您可以调⽤构造函数⽽不指定标题值: class Book (val title: String = Scala) val book = ne Book book.title 您还可以在创建新图书时指定所选的标题值: val book = ne Book(ne title) book.title 您还可以选择提供命名参数,如以下代码所⽰: val book = ne Book(title=Beginning Scala) book.title 辅助构造函数 我们可以为类定义⼀个或多个辅助构造函数,以提供创建对象的不同⽅法。 辅助构造函数通过创建名为this的⽅法来定义。 我们可以定义多个辅助构造函数,但它们必须有不同的签名。 每个辅助构造函数必须以对先前定义的构造函数的调⽤开始。 以下代码说明了⼀个主构造函数和两个辅助构造函数。 class Book (var title :String, var ISBN: Int) { def this(title: String) { this(title, 2222) }

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档