2010년 6월 29일 화요일

method 와 function

매소드, 매서드, 메쏘드...method가 있다.
사전에 찾아보면, 방법, 방식, 순서, 등의 뜻이 있다.

함수라는게 있다. function.
어떤 무엇인가를  받아들이면, 그것으로 또 무슨 행동을 쿵짝쿵짝해서 "다했습니다." 하고 준다.

y = 3x+2

x에다가 1을 넣으면, 1에다가 3을 곱하고 거기다가 2를 더해서, 5라는 값을 준다.
즉 y=3x+2 에다가 1넣으면 5가 나온다.
이것이 함수다!

그럼 프로그래밍 언어에서 말하는 매서드라는 건 뭘까...똑같다.
.
.
.
똑같진 않고 조금 다르다.
객체지향이라는게 문제인데. 객체지향에서는 클래스라는 걸 쓴다.
거두절미하고 function은 그냥 혼자서 존재하는데, method는 class의 구성요소로써 존재한다.
class는 여러가지 속성을 가지고 있다.

예를들어 자동차는 타이어라는것이 4개 있고, 창문도 여러개 달려있고, 거울도 몇개 달려있고, 엔진이라는 것도 가지고 있고, 핸들도 있고, 의자도 몇 개 있고, 움직인다.

여기서 "움직인다!"라는 것이 메서드이다. "자동차"라는 클래스의 "움직인다" 라는 메서드

계산기를 예로 들면,

1을 누르고, 더하기를 누르고, 2를 누르고, = 를 누르면 3이 출력된다...이렇게만 말하면 이건 함수다.

그런데 계산기(class)를 책상앞에 딱 갖다놓고, 가만 보니깐 더하기(method)도 있고, 빼기(method)도 있고, 곱하기(method)도 있고, 나누기(method)도 있고...음...이상한 버튼이 없는걸로 봐서 공학용계산기는 아니네..."자! 그럼 이 계산기(class)라는 것으로 덧셈(method)를 해보자!" 라는 생각을 한 뒤. 1을 누르고, 더하기를 누르고, 2를 누르고, =를 누르니까 3이 출력됐다.

이때 계산기는 클래스, 덧셈은 매서드와 mapping되는 것이다.

즉, 패러다임의 차이!

<추가>
class 내의 많은 구성요소를 member라고 한다.
class 내의 method를 멤버함수 라고도 한다.

댓글 없음:

댓글 쓰기