ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Scala Class, Object(클래스, 오브젝트)
    Scala 2014. 6. 2. 09:00
    반응형

    클래스 
    따로 생성자가 없음. 메소드 바깥에 있는 코드들이 생성자 역할을 하게됨.
    상속해서 메소드를 재정의할때는 override 를 명시해 줘야 함.

    오브젝트(object)
    싱글톤인 객체.
    스칼라에는 따로 전역 멤버를 가지지 않고 오브젝트를 사용함.


    클래스, 클래스상속, 오브젝트 예제.

    class Point(xc: Int, yc: Int) {
      var x: Int = xc
      var y: Int = yc
     
      def move(dx: Int, dy: Int) {
        x = x + dx
        y = y + dy
      }
     
      override def toString(): String = "(" + x + ", " + y + ")";
    }
    
    class SubPoint(xc: Int, yc: Int, zc: Int) extends Point(xc, yc){
      var z: Int = zc
    
      def move(dx: Int, dy: Int, dz: Int) {
        x = x + dx
        y = y + dy
        z = z + dz
      }
    
      override def toString(): String = "(" + x + ", " + y + ", " + z + ")"
    }
    
    
    object Test{
      val pt = new Point(1, 2)                        //]] > pt  : Point = (1, 2)
      println(pt)                                     //]] > (1, 2)
      pt.move(10, 10)
      println(pt)                                     //]] > (11, 12)
     
      val subpt = new SubPoint(1, 2, 3)               //]] > subpt  : SubPoint = (1, 2, 3)
      println(subpt)                                  //]] > (1, 2, 3)
      subpt.move(10, 10, 10)
      println(subpt)                                  //]] > (11, 12, 13)
    }
    


    반응형

    'Scala' 카테고리의 다른 글

    Scala Currying(커링)  (0) 2014.06.11
    Scala Traits(트레잇)  (0) 2014.06.06
    Scala 함수  (0) 2014.05.30
    Scala 루프구문  (0) 2014.05.28
    Scala 조건문  (0) 2014.05.26

    댓글

Designed by Tistory.