main方法
scala和Java一样,如果要运行一个程序,必须有一个main方法。而在Java中main方法是静态的,而在scala中没有静态方法。在scala中,这个main方法必须放在一个单例对象中。
定义main方法
main方法
def main(args:Array[String]):Unit = {
// 方法体
}
示例
示例说明
- 创建一个单例对象,在该单例对象中打印"hello, scala"
参考代码
object Main5 {
def main(args:Array[String]) = {
println("hello, scala")
}
}
实现App Trait来定义入口
创建一个object,继承自App Trait(特质),然后将需要编写在main方法中的代码,写在object的构造方法体内。
object 单例对象名 extends App {
// 方法体
}
示例
示例说明
- 继承App特质,来实现一个入口。同样输出"hello, scala"
参考代码
object Main5 extends App {
println("hello, scala")
}
伴生对象 | apply方法
我们之前使用过这种方式来创建一个Array对象。
// 创建一个Array对象
val a = Array(1,2,3,4)
这种写法非常简便,不需要再写一个new,然后敲一个空格,再写类名。我们可以通过伴生对象的apply方法来实现。
定义
定义apply方法
object 伴生对象名 {
def apply(参数名:参数类型, 参数名:参数类型...) = new 类(...)
}
创建对象
伴生对象名(参数1, 参数2...)
示例
示例说明
- 定义一个Person类,它包含两个字段:姓名和年龄
- 重写apply方法,使用Person类名就可以创建对象
- 在main方法中创建该类的对象,并打印姓名和年龄
参考代码
object _12ApplyDemo {
class Person(var name:String = "", var age:Int = 0)
object Person {
// 定义apply方法,接收两个参数
def apply(name:String, age:Int) = new Person(name, age)
}
def main(args: Array[String]): Unit = {
// 使用伴生对象名称来创建对象
val zhangsan = Person("张三", 20)
println(zhangsan.name)
println(zhangsan.age)
}
}