Scala的类和对象几乎和Java一样

  1. class Point(xc: Int, yc: Int) { //构造函数是直接放在Class的参数列表里,这里和Java不同
  2. var x: Int = xc
  3. var y: Int = yc
  4. def move(dx: Int, dy: Int) {
  5. x = x + dx
  6. y = y + dy
  7. println ("x 的坐标点: " + x);
  8. println ("y 的坐标点: " + y);
  9. }
  10. }
  • 还有一种不需要类就可以创建对象的方法,直接用Object关键字,相当于Java的静态类

    object Person{
      var age
    ...
    ...
    }
    使用时不需要new,可以直接对象名.成员,如下
    println(Person.age)
    
  • 需要注意的是:

    • 如果object和class同名,他们为伴生关系,可以互相访问私有属性
    • 可以在伴生object中创建一个apply函数,可以调用这个函数直接得到伴生class的对象实例

Scala也必须要一个main方法才能运行

object mainTest {//main方法只能定义在object中,不能在class中
   def main(args: Array[String]) {
   }
}

Scala中的接口trait也比较特殊

trait TraitA {
  def A(x: Int)
}
trait TraitB {
  def A(x: Int)
}

class Person extends TraitA with TraitB{//实现用extends,多实现后面用with连接
    override TraitA(x:Int){
      ...
  }
  TraitB(x:Int){//可以写override,也可以不写
      ...
  }
}