作者:用户691sf34d0b | 来源:互联网 | 2023-10-12 19:07
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关键字来创建一个类的对象实例了
}
}