Scala 之构造器(六)
来源:互联网 发布:vb 时间函数 编辑:程序博客网 时间:2024/05/22 20:18
- Scala 有主构造器与辅助构造器之分,辅助构造器可以有多个,用this关键字修饰。
- 每个辅助构造器都必须调用一个此前已经定义的辅助构造器或主构造器。
- 主构造器的声明必须得放在类名后面。
package objectDemo/** * 主构造器demo类 * 主构造器的声明放在类名后面 * 主构造器中val修饰的在伴生对象中不可修改,var修饰的可修改, * 没加修饰符的如下的age参数只能在本类中调用,默认为val修饰,如需在伴生对象中调用可通过在本类中定义对应的方法返回该属性值 */class StructDemo(val id: String, var name: String, age: Int) { private var address = "" println("调用了。。。" + age) // 定义一个供非本类调用的方法 def getAge(): Int = { if (age > 30) 20 else 10 } /** * 辅助构造器的名称为this, * 每个辅助构造器都必须调用一个此前已经定义的辅助构造器或主构造器 * 一个类可以有多个辅助构造器 */ def this(id: String, name: String, age: Int, address: String) { this(id, name, age) // 辅助构造器第一行必须先调用主构造器 this.address = address }}object StructDemo { def main(args: Array[String]): Unit = { val structDemo = new StructDemo("123", "hehe", 28) // structDemo.id = "1234" // val 修饰的不可修改 println(structDemo.id + ",name:" + structDemo.name) structDemo.name = "bobo" println(structDemo.id + ",name:" + structDemo.name + ",age:" + structDemo.getAge()) val hahaDemo = new StructDemo("123", "haha", 30, "I Love Scala ....") hahaDemo.name = "Hello" println(hahaDemo.id + ",name:" + hahaDemo.name + ",id:" + hahaDemo.id + ",address:" + hahaDemo.address) }}object testDemo { def main(args: Array[String]): Unit = { val structDemo = new StructDemo("123", "hehe", 28) // structDemo.id = "1234" // val 修饰的不可修改 println("testDemo:" + structDemo.id + ",name:" + structDemo.name) structDemo.name = "bobo" println("testDemo:" + structDemo.id + ",name:" + structDemo.name + ",age:" + structDemo.getAge()) }}
阅读全文
0 0
- Scala 之构造器(六)
- Scala学习之构造器
- scala 构造方法(默认构造器)
- Scala学习回顾(六)---- Scala中的继承:超类的构造、重写字段、重写方法
- Scala练习(六)
- scala中的构造器
- scala的构造器
- scala 构造器
- Scala之主构造函数
- Scala之主构造函数
- Scala学习3之快学scala第五章习题之构造器
- Scala之函数式对象之先决条件 scala标识符 辅助构造器
- [scala之六]包的引入
- Dt大数据梦工厂王家林老师 Scala实战详解之第8讲 Scala主构造器、私有构造器、构造器重载实战详解
- JavaScript创建对象之寄生构造函数模式(六)
- Scala : 主构造器、私有构造器、构造器重载
- Scala基础入门(六)Scala关键字、表达式
- Scala学习第八天 Scala主构造器、私有构造器、构造器重载实战详解
- JavaWeb 服务启动时,在后台启动加载一个线程
- JSP语法
- Android 内存的一些小知识点
- Web前端开发精品课HTML CSS JavaScript基础教程第六章课后编程题答案
- 第二届全国智能制造(中国制造2025)创新创业大赛华南人工智能专项赛决赛圆满举办
- Scala 之构造器(六)
- php开发过程案例一
- PHP生成带有logo和底图的支付二维码
- Android蓝牙开发【六】hfp连接
- 将 Azure VM 迁移到 Azure 中的托管磁盘
- 数据分析基础(1)
- Win10下OpenCV3 开发环境配置
- Android 键盘适配-中英文适配
- 20171206 AE 开发:栅格重分类方法相关问题记录