메서드(Method)


다른 프로그래밍 언어를 사용하면 함수라는 것이 별도로 존재하는 것을 알 수 있다.

하지만 자바의 함수는 따로 존재하지 않고 클래스 내에 존재한다.(클래스를 떠나 존재할 수 없다.) 자바는 이러한 클래스 내의 함수를 메서드라고 한다.

(파이썬같이 메서드랑 함수가 공존하면 구분짓긴 하는데, 자바는 구분해서 언급하진 않는다. 다만, 함수라는 명칭보다 정확한 명칭은 메서드이다.)

클래스도 간단하게 설명하자면 상태(멤버변수)와 동작(메서드)을 가진다고 생각하면 된다.

아래는 메소드 선언 방식이다.

public class 클래스명 {
    접근제어자 리턴타입 메소드명() {
        // 메소드 기능
    }
}

메서드는 보통 이런 경우에 사용한다고 생각하면 편하다.

  1. 기능을 만들었는데 반복 호출을 하게 될 경우
  2. 멤버변수와 연계해서 사용할 경우

메서드는 다음과 같은 순서로 실행된다.

  1. new 키워드를 사용하여 호출할 메서드가 존재하는 클래스 인스턴스화 (JVM - Heap 영역 적재)
  2. 호출해서 사용 (생성된 인스턴스는 main() 종료 후 GC(가비지 컬렉션)에 의해 메모리에서 회수 후 소멸)

아래는 간단하게 작성한 사용 예시이다.

public class Hello {
		// printHello 메서드
    public void printHello() {
        System.out.println("Hello~");
    }
    
    // 이 부분은 메인 함수(메서드)
		public static void main(String[] args) {
        // 위에서 얘기했던 호출 메서드가 존재하는 클래스를 인스턴스화 시키는 과정
				Hello hello = new Hello();
        // 인스턴스화된 클래스와 메서드를 붙여서 사용한다.
				hello.printHello();
		}
}
// 출력: Hello~