object对象、伴生类与伴生对象与类的继承实战
2016-02-27 13:19
429 查看
场景
object对象的作用、伴生类与伴生对象、类的继承语法实验
package com.scode.scala /** * author: Ivy Peng * function: object对象、伴生类与伴生对象、类的继承 * date:2016/02/27 12.43 * sum:object对象中的方法与变量都是静态的 * 1、伴生类与伴生对象 * 语法 :object <name1> ;object <name2> 其中 name1=name2 * 性质:伴生类可以访问伴生对象的所有成员方法与属性-包括私有成员 * * 2、apply在伴生类与伴生对象中的使用方法 * 伴生类中使用 语法:var varName = new ClassName varName() * 伴生对象中使用 语法 : * var varName = ObjectName() * 在ObjectName中的apply方法中返回ClassName实例 * * 3、类的继承与方法变量的重写 * 规范:在变量与方法前面加 override 关键字 * * 执行结果: * I'm into scala so much! try your best,just relax ! I'm into Spark so much! () School:Spark salary:9500 I'm a worker 8 hours */ class ApplyTest { //伴生类中可以访问伴生对象的所有成员 val id = ApplyTest.newStudentNo private var number =ApplyTest.studentNo def apply()=println("I'm into Spark so much!") def haveAtry() { println("try your best,just relax !") } } object ApplyTest { private var studentNo=0 private def newStudentNo= { studentNo+=1 studentNo } def apply()= { println("I'm into scala so much!") new ApplyTest } } class Person2(val name:String,val age:Int) { val school = "CS" def sleep = "8 hours" override def toString = "I'm a Person2" } class Worker(name:String,age:Int,val salary:Long) extends Person2(name,age) { override val school = "Spark" override def toString = "I'm a worker "+super.sleep } object ObjectOps { def main(args:Array[String])= { //apply在对象中的使用方式 val a = ApplyTest()//注:(隐性)调用伴生对象的apply方法生成类的实例,不用申明new关键字 a.haveAtry() //apply在类中的使用方式 val app = new ApplyTest println(app()) //类的继承 val worker = new Worker("ivy",27,9500) println("School:"+worker.school) println("salary:"+worker.salary) println(worker.toString()) } }
参考文献
scala 深入浅出实战经典 . 王家林相关文章推荐
- Objective—C通讯录简单编程(源码)
- iOS开发系列--Objective-C之KVC、KVO
- iOS开发系列—Objective-C之内存管理
- 《基于MFC的OpenGL编程》Part3 Drawing Simple 3D objects
- Objective-C 高性能的循环遍历 forin - NSEnumerator - 枚举 优化
- iOS 之 OBJECTC 调用C、OBJECTC调用C++
- iOS开发系列--Objective-C之协议、代码块、分类
- iOS开发系列--Objective-C之类和对象
- Objective-C中的存取方法
- 【值得收藏】线程、事件与QObject
- 推送(本地Local Notification)
- KVO探究
- python TypeError: 'str' object does not support item assignment”
- Object-C文件操作
- Objective-C继承
- Objective-C页面跳转方法总结
- 表单serializeObject问题
- 对Objective-C中runtime的理解
- fastjson包JSONObject.toJSON导致pojo对象部分属性丢失问题
- 浅析selenium的page object模式