메서드

A tour of the Dart language 페이지를 공부하면서 정리한 내용입니다.

메서드(Methods)는 객체에 대한 동작을 제공하는 함수입니다.

인스턴스 메서드

객체의 인스턴스 메서드(Instance methods)는 인스턴스 변수 및 this에 접근할 수 있습니다. 아래 코드에서 distanceTo() 메서드는 인스턴스 메서드의 예입니다.

import 'dart:math';

class Point {
  double x = 0;
  double y = 0;

  Point(this.x, this.y);

  double distanceTo(Point other) {
    var dx = x - other.x;
    var dy = y - other.y;
    return sqrt(dx * dx + dy * dy);
  }
}

연산자

연산자(Operators)는 특별한 이름을 갖는 인스턴스 메서드입니다. Dart에서는 아래 이름으로 연산자를 정의할 수 있습니다.

<

+

|

>>>

>

/

^

[]

<=

~/

&

[]=

>=

*

<<

~

-

%

>>

==

연산자 ==만 존재하고 !=는 존재하지 않는 것을 볼 수 있는데, !=syntactic sugar이기 때문입니다. 예를 들어, e1 != e2!(e1 == e2)syntactic sugar입니다.

연산자는 operator 식별자를 이용해 선언합니다. 아래 코드는 벡터의 더하기(+), 빼기(-)를 정의합니다.

Getter와 Setter

GetterSetter는 객체의 속성에 대한 읽기와 쓰기 접근을 제공하는 특수한 메서드입니다. 각 인스턴스 변수에는 암시적 getter와 적절한 경우 setter가 존재합니다. getset 키워드를 사용하여 gettersetter를 구현하는 방법으로 추가 속성을 만들 수 있습니다.

아래 코드는 두개의 연산된 속성 rightbottom을 정의합니다.

Gettersetter를 사용하면 클라이언트 코드를 변경하지 않고 인스턴스 변수로 시작하여 후에 메서드로 변경할 수 있습니다.

추상 메서드

인스턴스 메서드와 getter, setter는 추상 메서드(Abstract methods)로 선언하여 인터페이스로 정의할 수 있습니다. 추상 메서드는 추상 클래스에만 존재할 수 있으며, 추상 클래스를 상속하는 쪽에서는 반드시 추상 메서드를 구현해야합니다. 추상 메서드로 선언하려면 메서드 바디 없이 ;를 사용하면 됩니다.

Last updated