Scala单例对象、伴生类以及伴生对象、apply介绍
2015-12-06 12:04
495 查看
1、代码如下:
2、结果如下
单例对象:101
伴生类中访问伴生对象:101
3、scala apply
package com.yy.oop
/**
* 伴生类和伴生对象
* class Student是伴生对象Object Student的伴生类
* object Student是伴生类class Student的伴生对象
*/
//伴生类
class Student(var name:String,var address:String){
private var phone="110"
//直接访问伴生对象的私有成员
def infoCompObj() = println("伴生类中访问伴生对象:" + Student.sno)
}
//伴生对象
object Student {
private var sno:Int = 100
def incrementSno()={
sno += 1 //加1
sno //返回sno
}
//定义apply方法,实例化伴生类
def apply(name1:String,address1:String)= new Student(name1,address1)
def main(args: Array[String]): Unit = {
println("单例对象:" + Student.incrementSno()) //单例对象
//实例化伴生类
val obj = new Student("yy","bj")
obj.infoCompObj();
println("通过伴生对象的apply方法访问伴生类成员:")
val obj2 = Student("yy_apply","bj_apply") //实际是通过apply方法进行了对象实例化,避免了手动new对象
println(obj2.name)
println(obj2.address)
}
}
结果如下:
单例对象:101
伴生类中访问伴生对象:101
通过伴生对象的apply方法访问伴生类成员:
yy_apply
bj_apply
package com.yy.oop /** * 伴生类和伴生对象 * class Student是伴生对象Object Student的伴生类 * object Student是伴生类class Student的伴生对象 */ //伴生类 class Student(var name:String,var address:String){ private var phone="110" //直接访问伴生对象的私有成员 def infoCompObj() = println("伴生类中访问伴生对象:" + Student.sno) } //伴生对象 object Student { private var sno:Int = 100 def incrementSno()={ sno += 1 //加1 sno //返回sno } def main(args: Array[String]): Unit = { println("单例对象:" + Student.incrementSno()) //单例对象 //实例化伴生类 val obj = new Student("yy","bj") obj.infoCompObj(); } }
2、结果如下
单例对象:101
伴生类中访问伴生对象:101
3、scala apply
package com.yy.oop
/**
* 伴生类和伴生对象
* class Student是伴生对象Object Student的伴生类
* object Student是伴生类class Student的伴生对象
*/
//伴生类
class Student(var name:String,var address:String){
private var phone="110"
//直接访问伴生对象的私有成员
def infoCompObj() = println("伴生类中访问伴生对象:" + Student.sno)
}
//伴生对象
object Student {
private var sno:Int = 100
def incrementSno()={
sno += 1 //加1
sno //返回sno
}
//定义apply方法,实例化伴生类
def apply(name1:String,address1:String)= new Student(name1,address1)
def main(args: Array[String]): Unit = {
println("单例对象:" + Student.incrementSno()) //单例对象
//实例化伴生类
val obj = new Student("yy","bj")
obj.infoCompObj();
println("通过伴生对象的apply方法访问伴生类成员:")
val obj2 = Student("yy_apply","bj_apply") //实际是通过apply方法进行了对象实例化,避免了手动new对象
println(obj2.name)
println(obj2.address)
}
}
结果如下:
单例对象:101
伴生类中访问伴生对象:101
通过伴生对象的apply方法访问伴生类成员:
yy_apply
bj_apply
相关文章推荐
- scala第十八讲:类和对象
- Scala入门学习之【类,对象,继承】
- 【iOS学习笔记】一些问题
- Android开发之旅二---Activity生命周期
- Vim命令合集
- ios开发之个人笔记(通过plist文件展示单组数据LOL)
- MAC android studio 新建hollowerd 提示:install bool 19.1.0解决方法 苹果电脑
- android之BroadcastReceiver应用实列(耳机按键切换下一首音乐)
- iOS 自定义TabBarController
- Android—实现自定义相机倒计时拍照
- 学习Android开发的二十套免费理想资源
- iOS小技巧15-获取App安装包中的图片
- 【android布局】px、dp和sp,这些单位有什么区别?
- Android FM学习中的模块 FM启动过程
- Android@id和@+id区别
- Apply Newton Method to Find Extrema in OPEN CASCADE
- unity3d添加武器功能
- Android开发—已root的手机获取data路径
- ios Masonry怎么以纯代码的方式计算cell高度
- 微信学习系列之一:定时获取微信access_token的线程