언어 Language

Q. 함수function와 메소드method의 차이는?

Tap to restart 2020. 10. 25. 14:00
반응형

A. 메소드는 객체와 관련된 함수로 자바처럼 클래스 기반 언어라면 클래스 내부에 있는 함수다.

함수가 메소드를 포함하는 개념으로 볼 수 있다.

함수 ⊃ 메소드

 

자바스크립트 함수

예를 들어 자바스크립트에서는 함수라고 한다.

예를들어 자바스크립트로 덧셈 함수를 만들면 아래와 같다.

자바 메소드

덧셈 함수를 자바스크립트에서 하듯 Java에서 만들려고 아래처럼 입력하면 에러가 난다.

class Main {
    public static void main(String[] args) {
        int sum = sum(1, 2);
        System.out.println("sum:" + sum);
    }
}

public int sum(int a, int b){
    return a + b;
}

 에러 코드

Main.java:8: error: class, interface, or enum expected
public int sum(int a, int b){
       ^
Main.java:10: error: class, interface, or enum expected
}
^
2 errors

위 에러 코드를 보면 class, interface, enum이 기대되는데 int가 입력되었다고 나온다.

Java는 class 밖에서 함수를 선언할 수 없다. 그래서 자바를 배울 때 함수라는 용어를 쓸 일이 없다. 메소드만 있으니까.

 

 

위 처럼 클래스 안에 넣으면 메소드가 정상 작동한다.

결과도 3이 나온다.

 

참고: 위키백과 메소드

반응형