- object Person {
- private val eyeNum = 2
- def getEyeNum = eyeNum
- def main(args: Array[String]): Unit = {
- println(Person.getEyeNum) // 2
- }
- }
- abstract class Hello(var message:String) {
- def sayHello(name :String)
- }
- object HelloImpl extends Hello("hello"){
- override def sayHello(name: String): Unit = {
- println(message + "," + name)
- }
- def main(args: Array[String]): Unit = {
- HelloImpl.sayHello("yxj")
- }
- }
- /**
- * 一个类和一个 object 对象名字相同, 都在一个. scala 文件中, 那么他们就是伴生类和伴生对象
- *
- * @param name
- * @param age
- */
- class People(name:String , age:Int ) {
- def sayHello = println("hi," + name +", your age is" + age + ",your eyeNum is" + People.eyeNum)
- }
- object People {
- private val eyeNum = 2
- def getEyeNum = eyeNum
- }
- object objectsTest{
- def main(args: Array[String]): Unit = {
- val yy = new People("yxj" , 30)
- yy.sayHello
- }
- }
- /**
- * object 中 apply 方法的使用, 简化对象创建的过程
- *
- */
- class Apple(name:String ,age:Int) {
- println(name + "," + age)
- }
- object Apple{
- // 伴生对象的 apply 简化了创建伴生类的方式
- def apply(name: String, age: Int): Apple = new Apple(name, age)
- def main(args: Array[String]): Unit = {
- val a = Apple("yxj" , 30)
- println(a)
- // 普通的创建类的过程
- val a1 = new Apple("yxj" , 31)
- // 伴生对象定义了 apply 后, 不需要在使用 new 关键字来创建一个类的对象实例了
- }
- }
来源: http://www.bubuko.com/infodetail-2677669.html