scala学习之路:8.staticObject与伴生类伴生对象
2016-03-13 12:15
519 查看
class University { val id = University.newStudentNo // 访问自己的伴生对象的成员名称:newStudentNo需要添加半生对象名称 private var number = 0 def aClass (number : Int ) {this.number += number} } // 只有在第一次使用的时候才执行 这里会调用默认的构造器 没有参数 //这里的 University 是 class University的半生对象 这个类可以访问半生对象的成员 //包括私有的成员 必须加上半生对象的名称以及变量 //同理 class University 是 University的伴生类 object University { // 静态方法区 ,或者公共变量区 private var studentNo = 0 def newStudentNo = { // 此处静态成员或者是静态方法不能用 private 修饰 studentNo += 1 // 把私有的 变量+1 studentNo // scala中最后一行就是返回内容 } } object dt03ObjectStatic { def main(args: Array[String]): Unit = { println(University.newStudentNo) println(University.newStudentNo) // 这也是 半生对象的使用 val arra = Array(1,3,5,78,9) } }
apply使用:
class ApplyOperation { } class ApplyTest { def apply() = println("I am into spark so much !!!") def haveATry { println("Hava a try on apply!") } } object ApplyTest { def apply() = { println("I am into Scala so much !!!") new ApplyTest } } object ApplyOperation extends App { // val a = ApplyTest() //I am into Scala so much !!! // a.haveATry //Hava a try on apply! // 先经过伴生对象的 apply 方法 val apl = new ApplyTest apl.haveATry apl.apply() //这三句打印结果一样 apl() println(apl()) // 不加()就是打印对象的地址了 点击鼠标跳转到 class ApplyTest }
相关文章推荐
- SQL Server系统表sysobjects介绍与使用(转))
- ios-基础至【5】-NSObject
- Cocoa Touch(四): 多线程GCD, NSObject, NSThread, NSOperationQueue
- groovy/java自实现json解析器(2)JsonObject
- 详解JS中的Object对象
- Objective-C 类的复合
- python的class(类)中的object是什么意思?
- Json反序列化之ObjectMapper(自定义实现反序列化方法)
- 第一章-熟悉Objective-C
- Object-c对象和消息传递
- Objective-c 深浅复制
- 从C/C++到Objective-C(五)--- 类别的使用
- android.os.DeadObjectException memory near r0: 异常处理
- js中object、字符串与正则表达式的方法
- Objective-c 集合对象
- 分离出表单对象(Form Objects)
- MyBatis中对List<Object> 对象List的批处理插入操作
- 从C/C++到Objective-C(四)--- 属性的使用
- Object-C HelloWorld 编译运行
- Objective-c 字典对象