Scala中自定义get和set方法
object Test07 {
def main(args: Array[String]): Unit = {
val person = new Test07
person.name_:("goudan")
println(person.name)
person.setAge(18)
println(person.getAge)
}
}
class Test07{
//scala中的set和get
private var _name:String=_ //定义私有字段
def name_:(name:String)=this._name=name // set方法
def name:String=_name // get方法
//java中的set和get,会自动生成set和get方法
@BeanProperty var age:Int=_
}
Scala中的构造器
import scala.beans.BeanProperty
//在这里定义是一个主构造器
class Dog(name:String,val age:Int,private val height:Int,@BeanProperty val weight:Int) {
//这里定义的是一个辅助构造器
private var nice:String=_
//辅助构造器中需要实现主构造器中的全部属性
def this(name:String,age:Int,height:Int,weight:Int,nice:String){
this(name,age,height,weight)//第一步就是先要实现主构造器的构造方法
this.nice=nice
}
}
object Dog{
def main(args: Array[String]): Unit = {
val goudan = new Dog("goudan", 18, 180, 56,"nice")
}
}
单例对象
单例对象不能带参数,单例对象不能使用new关键字实例化,所以没有机会传递给他实例化的参数
单例对象咋第一次访问的时候才会初始化
单例对象与某个类同名时,它才会被称为伴生对象
类和伴生对象必须定义在一个源文件里,类称为该单例对象的伴生类,类和他的伴生类对象可以相互访问其私有成员
不与伴生对象共享名称的单例对象被称为独立对象,可以作为相关功能的工具类,或者scala应用程序的入口点
object object02 {
def main(args: Array[String]): Unit = {
val s = SessionFactory
println(s.getSession)
println(s.getSession.size)
println(s.removeSession)
println(s.getSession.size)
}
}
object SessionFactory {
println("SessionFactory被执行")
var i = 5 // 计数器
// 存放Session对象的数组
val sessions = new ArrayBuffer[Session]()
// 向sessions里添加Session对象,最多添加5个Session对象
while (i > 0){
println("while被执行")
sessions.append(new Session)
i -= 1
}
// 获取Session对象
def getSession = sessions
// 删除Session对象
def removeSession {
val session = sessions(0)
sessions.remove(0)
println("session对象被移除" + session)
}
}
class Session{}
Scala中的对象丶构造器丶单例对象是使用方法
最新推荐文章于 2024-07-26 16:01:19 发布