8.Scala主构造器、私有构造器、构造器重载实战详解
2017-07-11 16:57
239 查看
一、Scala主构造器实战
Scala构造器和Java构造器有很大的不同,若传入的参数以var或val来说明,那么这个参数会成为类的字段
lili,27,male
spark,27,male
二、私有构造器实战、构造器重载实战
this is a primary constructor!
null
lili
如果不想让别人使用主构造器,那么就在类名后面加一个private,调用时候就只能使用辅助构造器了
class Student private (var name : String, var age : Int) { ... }
参考资料来源于 DT大数据梦工厂 Scala零基础实战经典第8课 由王家林老师讲解和《快学Scala》
Scala构造器和Java构造器有很大的不同,若传入的参数以var或val来说明,那么这个参数会成为类的字段
class Teacher{ //这里省略了() 主构造器。构造器的定义和类定义交织在一起 var name : String = _ //私有字段,生成公有的getter和setter private var age = 27 //私有字段,生成私有的getter和setter private[this] var gender = "male" //对象私有字段,不生成getter和setter def this(name : String) { //重载构造器,也叫附属构造器。任何一个重载构造器都必须调用其他的重载构造器或主构造器 this //实际上是this(),省略了括号 this.name = name } def sayHello(){ println(this.name +","+ this. age +","+ this.gender) } } object ssa { def main(args: Array[String]): Unit = { var p = new Teacher("lili") p.sayHello p.name = "spark" p.sayHello //p.gender = "female"//这里会报错,因为这个字段是对象私有字段,不会生成setter } }输出:
lili,27,male
spark,27,male
二、私有构造器实战、构造器重载实战
class Student (var name : String, var age : Int){ //主构造器,传入的参数以var或val来说明,那么这个参数会成为类的字段 println("this is a primary constructor!") var gender : String = _ println(gender) def this(name : String, age : Int, gender : String){ //附属构造器、辅助构造器,或重载构造器 this(name, age) //每一个辅助构造器都必须以一个对先前已定义的其他辅助构造器或主构造器的调用开始 this.gender = gender } } object ssa { def main(args: Array[String]): Unit = { var s = new Student("lili",22) //除了方法外,其他语句都会被执行 println(s.name) } }输出:(主构造器会执行类定义中的所有语句)
this is a primary constructor!
null
lili
如果不想让别人使用主构造器,那么就在类名后面加一个private,调用时候就只能使用辅助构造器了
class Student private (var name : String, var age : Int) { ... }
参考资料来源于 DT大数据梦工厂 Scala零基础实战经典第8课 由王家林老师讲解和《快学Scala》
相关文章推荐
- scala-08Scala主构造器、私有构造器、构造器重载实战详解
- Scala学习第八天 Scala主构造器、私有构造器、构造器重载实战详解
- Dt大数据梦工厂王家林老师 Scala实战详解之第8讲 Scala主构造器、私有构造器、构造器重载实战详解
- 008-Scala主构造器、私有构造器、构造器重载实战详解
- 008-Scala主构造器、私有构造器、构造器重载实战详解
- Scala主构造器、私有构造器、构造器重载实战详解
- Scala学习第八天 Scala主构造器、私有构造器、构造器重载实战详解
- 0008.Scala主构造器、私有构造器、构造器重载实战详解
- scala-07Scala类的属性和对象私有字段实战详解
- Scala学习第七天 Scala类的属性和对象私有字段实战详解
- Dt大数据梦工厂王家林老师 Scala实战详解之第7讲 Scala类的属性和对象私有字段实战详解
- Dt大数据梦工厂王家林老师 Scala实战详解之第15讲 Scala多重继承、多重继承构造器执行顺序及AOP实现
- Scala主构造器、私有构造器、构造器重载
- Scala 深入浅出实战经典 第7讲:Scala类的属性和对象私有字段实战详解
- Scala-隐式转换-私有函数-重载-构造器
- Dream------scala--类的属性和对象私有字段实战详解
- Scala : 主构造器、私有构造器、构造器重载
- 第22讲: Scala中的闭包实战详解
- 第24讲: Scala中SAM转换实战详解
- Scala 深入浅出实战经典 第96讲:Akka第一个案例动手实战main方法实现中ActorSystem等代码详解