您的位置:首页 > 移动开发 > Objective-C

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

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: