好程序员大数据学习路线分享scala单列和伴生对象
scala单例 对象SingletonDemo {
def主要(args:数组[String]):单位={
val s=SessionFactory
println (s.getSession)
println (s.getSession.size)//.size得到几个会话对象
}
} SessionFactory {
对象
println (“SessionFactory被执行了“)
//计数器
var=5
//存放会话对象的数组
=new ArrayBuffer val会话(Session) ()
, (i> 1) {
println(“虽然被执行了“)
会话。追加(新会话)
i -=1
}
//获取会话对象
def getSession=会议
}
类会话{
}
伴生对象
单例对象包括伴生对象,类与伴生对象之间可以互相访问,即使被私人修饰的私有字段和属性
伴生对象首先是一个单例对象,单例对象用对象定义
在scala中,单例对象分两种
1。关联并未自动关联到特定类的单例对象,称为独立对象→独立对象
2。关联到一个类的单例对象,该单例对象与该类是同一个类名,称为伴生对象→伴星
类companionObject {var id=
0
私人val name=皕haoxiaodan"
def printContent ()={
println(名字+ companionObject.Constant)
}
} 对象companionObject {
私人val常数=?是我的goddess"。
def主要(args:数组[String]):单位={
val有限公司=new companionObject
co.id=8
println (co.id)
println (co.name)
co.printContent ()//zhaoxiaodan
是我的女神}
}
申请和取消应用(通常在类的伴生对象中定义应用方法)
应用方法通常被称为注入方法,在类的伴生对象中做一个初始化操作
应用方法的参数列表不需要和主构造器列表统一
取消应用方法通常为提取方法,使用取消应用方法可以提取构造器中固定数量的对象和值
取消应用方法会返回一个选项,如果选项里有值的话,内部会有一个对一些象来封装这些值
类ApplyDemo (val name:字符串,val年龄:Int, val表面上:Int) {
} 对象ApplyDemo {
//注入方法
def应用(名称:字符串,年龄:Int): ApplyDemo={
新ApplyDemo(姓名、年龄、面值=https://www.yisu.com/zixun/80)//初始化
}
//提取方法
(applyDemo: applyDemo):取消应用def选项[(字符串,Int, Int)]={
如果(applyDemo==null) {
没有 其他
} {
一些(applyDemo.name、applyDemo.age applyDemo.faceValue)
}
}
} 对象ApplyTest {
def主要(args:数组[String]):单位={
val applyDemo=applyDemo(“赵晓丹“,18)
{applyDemo匹配
例ApplyDemo(“赵晓丹“,年龄,表面上)=祝辞println (s"名字:赵晓丹,年龄:年龄、美元阵线:faceValue"美元;)
_=比;println (“null")
}
}
}