1. 개요
- 메서드(Method, Member function)는 객체 지향 프로그래밍 등에서 클래스 내부에 정의되어 있는 클래스의 인스턴스와 관련된 동작을 정의한다. 메서드는 실행 중 인스턴스에 저장되어 있는 데이터에 접근할 수 있는 특징을 가지고 있다. 멤버 함수라고 부르기도 한다.
- 설명이 어렵다면 수학의 함수와 비슷하다고 생각하면 쉽다.
- 프로그램의 효율적인 모듈화를 위해서 반드시 필요한 개념이다.
- 메서드를 메소드라고 부르기도 한다. 외래어 표기법에 따르면 메서드로 표기한다.
2. 예제
2.1. 자바에서
1: public class Calculate {
2: public int sum(int a, int b) {
3: return a + b;
4: }
5: }
위 예제 소스는 자바로 작성된 것으로 프로그래밍 언어별로 구현 방식이 다를 수 있다.위 소스에서 2~4번 줄이 메서드에 해당되는 영역이다.
Calculate
라는 class
하위에 종속되어있는 sum
이라는 동작을 실행하게 된다.다른 클래스에서
sum
메서드를 사용하고자 하면 Calculate.sum(2, 3);
이런 식으로 호출하는게 보통이다.1: abstract class Calculate {
2: abstract int sum(int a, int b);
3: }
위 예제 소스는 추상 메서드이며 메서드의 상세 실행 내용을 작성하지 않은 모양세에서 보이듯이 인터페이스를 명시하기 위해 사용된다. 추상 클래스를 인터페이스로 받아서 사용하면 추상 메서드를 하위에서 정의해서 사용해야 한다.2.2. 하스켈에서
하스켈에서 타입 클래스에 정의된 함수를 메서드로 부르기도 한다. 예를 들어 타입 클래스Eq
에 정의된 함수 ==
는 메서드이다.class Eq a where
(==) :: a -> a -> Bool
타입 클래스 모나드에 정의된 함수 >>=
도 메서드이다.class Monad m where
(>>=) :: m a -> (a -> m b) -> m b