Scala中的构造器
Scala中的构造器
Scala中的构造器分为两类,主构造器和辅助构造器
主构造器是通过类名后面跟的括号里加参数列表来定义
辅助构造器是通过关键字this定义
定义一个无参主构造器
1 2 3 4 | class rectangle(){ val width = 0 val height = 0 } |
定义一个带参主构造器
1 2 3 4 | class rectangle(w : Int){ val width = w val height = 0 } |
主构造器的函数体是在类里面的,可以说一个类里面除了方法和成员字段外都是主构造器的函数体,在类初始化的过程中会执行类体里面的语句。
可以在无参主构造器内这样定义和执行初始化方法
1 2 3 4 5 6 7 8 9 10 11 | class rectangle(){ var width = 0 var height = 0 Init() def Init(){ width = 1 height = 1 } } |
用this来定义辅助构造器,在辅助构造器里必须调用主构造器,所以说类的构造过程是必须经过主构造器。
注意
默认构造器是顺序执行的也就是从第一个非函数开发执行,所以如果你的上述代码是这样写的:
Init() var width = 0 var height = 0
width和height的值依然还是0!
辅助构造器一
1 2 3 4 5 6 7 8 9 | class rectangle(){ var width = 0 var height = 0 def this (w : Int){ this () width = w } } |
辅助构造器二
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | class rectangle(){ var width = 0 var height = 0 def this (w : Int){ this () width = w } def this (w : Int, h : Int){ this (w) height = h } } |
Keep it simple!
分类:
Java/Scala
标签:
scala
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性