1. /*
  2. object: 关键字,声明一个单例对象(伴生对象)
  3. Scala为了实现纯面向对象,删除了static关键字,使用object实现static的功能
  4. */
  5. object HelloScala {
  6. /*
  7. main方法:从外部可以直接调用
  8. def 方法名称(参数名称:参数类型):返回值类型 = {方法体}
  9. 不用分号
  10. */
  11. def main(args: Array[String]): Unit = {
  12. println("hello scala");
  13. // 也可以直接调用java
  14. System.out.println("hello scala from java");
  15. }
  16. }

编译:
>scalac HelloScala.scala 生成 HelloScala.class 和 HelloScala$.class(存放伴生对象的所属类)
运行:
>scala HelloScala

main方法还可以通过继承App来实现程序入口

伴生对象

  1. class Student(name: String, age: Int) {
  2. def printInfo(): Unit = {
  3. //school属性在java中可以设置为Student的static属性,直接用类.的方式调用,但是不够面向对象
  4. //因此在Scala中,创建伴生对象object(唯一创建)
  5. print(name + " " + age " " + Student.school)
  6. }
  7. }
  8. //引入同名伴生对象,可以互相访问其中的各种属性和方法
  9. object Student {
  10. val school: String = "NJU"
  11. def main(args: Array[String]): Unit = {
  12. var alice = new Student("Alice", "18")
  13. alice.printInfo()
  14. }
  15. }