- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)
}
您可能关注的文档
- IBM解密和密码芯片读写.docx
- ICP_AES内标法测定罗汉参中7种微量元素的含量_张修景.pdf
- iBATIS SQL Maps 入门教程.pdf
- IBM与BMM的比较低激发近似下的连续变量表示.pdf
- IC卡COS介绍.docx
- iData_数据融合技术在公路隧道火灾探测中的应用_赵忠杰.pdf
- IEC103学习和总结.docx
- IEEE802_11P_车载环境下的无线局域网.pdf
- IIC EEPROM程序详细解释.doc
- IMS数粒传感器系列.pdf
- SCH-I779手机如何设置自动开关机.pdf
- Schur不等式及其应用.pdf
- section7-聚类分析.pdf
- Schwinger玻色子表示中转动算符的对易性质.pdf
- SEO新手从业人员应当注意什么 SEO定位人群分析重要性分析.doc
- SF236 健康调查问卷对脊柱疼痛患者的聚类分析分类.pdf
- shaohui开题报告模板3.doc
- Simulation of quasistatic deformations using discrete rod models(kirchhoff模型-准静态).pdf
- sjgc0-2随机变量.pdf
- Signal Integrity信号完整性学习笔记_chapter1.pdf
原创力文档


文档评论(0)