방치하기

메소드 와 함수가 무엇인가.왜 함수라 하는가 본문

내가 만들어가는 Java 강의

메소드 와 함수가 무엇인가.왜 함수라 하는가

Yi Junho 2009. 7. 22. 20:52
반응형

1. 자바에서 메소드가 뭐에요?!

 

C언어에서 C언어는 함수의 집합체라고 한다. 하지만 자바에서는 함수라고 하지않고 메소드 라고 부른다. 필자는 메소드와 함수는 동일한 개념이라고 생각한다 .

아무리 쉬운 입문서에서도 왜 int main (void) {생략。。。} 이게 왜 함수인지를 알려주는 친절한 서적을 접하지 못했다. 그러다가 문득 필자는 수학에 함수와 비교를 해보게 되었고,수학적인 함수와 모양이 같다는 것을 알았다 .인제 그부분에 대해서 설명을 할려고한다.C를 기준으로 설명을 하겠다.

 

함수 y=f(x) 이게 함수라는 사실은 아마 다 알고 있으실 것이다. 이게 함수인데 .

프로그래밍에서의 함수 int main (void) {생략。。。} 와 아무리 봐도 다른 모양이라고 생각이 들것이다.

하지만 (1)int (2)main (3)(void) (4){생략。。。} 이렇게 나누어 보자 .

 

(1)int 라는 것은 반환형, (2)main은 이 함수의 이름 (3)(void)는 매개 변수 (4)메인 함수의 내용이다.

 

이 용어에 관해서는 C언어에서도 많이 나오기에 알 것이라 생각한다.

인제는 함수에 각각 대응을 시켜보겠다 . y=int 이고, f=main 이고, (x)=(void) 이다.

이렇게 보면 함수도 y=f(x)만 있는 것이 아니고 , c=g(x+3) 이런 함수도 있을 것이다 .

 

즉, (1)int 는 x가 f라는 함수에 들어왔을 때 출력되는 값이라 볼 수 있고

(2)main은 f라는 함수처럼 함수의 이름이되고 ,(3)의 (void)는 들어오는 값이다 .

그럼 (4)는 무엇이냐 . 함수의 내용 즉 y=f(x) 라는 함수에서 x가 들어왔을 때 어떻게 바뀌는 지를 표현할 수 있다 .

 

예를 들자면 y=f(x) 라는 함수의 내용은 f(x)=x^2+1 로도 쓸수도있고 , f(x)=3 으로 적을수도있다 . 들어온 매개변수를 쓰던 안쓰던지는 자유이다.

C언어에서도 마찬가지이다 void자리에 int 형을 넣어도 int형 없이 printf를 출력하면 변수값과 상관없는 기능을 가지는 함수가 되는 것이다 .

 

이 정도 에서 함수(메소드)에 대한 설명은 끝내겠다 , 아직 이 설명으로 완전히 이해는 되지않은 사람도 있을 것이다 . 뒤쪽에 메소드를 생성하면서 마저 자세하게 설명을 하겠다.


반응형
Comments