14. 메서드

Lee kyu min·2024년 1월 25일

Java study

목록 보기
14/41

메서드

  • 특정 작업을 수행하기 위한 코드 집합
  • 수학의 함수와 유사
    (차이 : 입력 or 출력 값이 없을 수 있다)

1. 메서드 선언

리턴자료형 메서드명 (매개변수, …) {
실행 블록(실행할 코드 작성)
}

1) 리턴자료형

  • 메서드 실행 후 호출한 곳으로 전달하는 결과값 자료형
  • 리턴값이 없으면 void로 작성
    리턴 자료형이 있는 메소드는 실행 코드 안에서 return 문으로 리턴값을 지정해야한다.

2) 메서드명

  • 메서드 호출에 사용되는 이름
  • 첫문자는 소문자로 시작, 캐멀스타일로 작성

3) 매개변수

  • 메서드 호출 시 전달할 매개 값(없으면 생략 가능)

4) 실행블록

  • 메서드 호출 시 해당 블록 내 코드가 실행되어 값을 반환한다
    (리턴자료값이 void면 값을 반환하지 않는다.)

2. 메서드 호출

메서드명();
  • 선언된 메소드 블록 실행
  • 객체 내부에서는 단순히 메서드 명으로 호출되지만
    외부객체에서는 참조 변수와 (.), 연산자를 이용하여 호출
  • 메서드가 매개변수를 가지고 있을 때는 호출 시 매개변수의 자료형과 수에 맞게 값을 제공해야 한다.
  • 메서드가 리턴값이 있을 경우 대입 연산자를 사용하여 리턴값을 변수에 저장 가능.
자료형 변수 = 메서드();
    • 이 때, 변수 자료형은 메서드의 리턴 자료형과 동일하거나 자동 변환가능해야 한다.

3. return 문

return [리턴값];
  • 메서드 실행을 강제 종료하고 호출한 곳으로 돌아간다.
  • 메서드 선언에 리턴 자료형이 있는 경우 return 문 뒤에 리턴값을 추가 지정해야 한다.
  • return문 이후 실행문을 작성하면 에러 발생.

4. 메서드 오버로딩

  • 메소드 이름은 같되 매개변수 자료형, 개수, 순서가 다른 메소드를 여러개 선언하는 것.
    (다양한 매개값을 처리하기 위해 사용)

5. 메서드 유형

1). 표준 라이브러리 메서드

  • 자바에 내장되어 있는 메서드. 언제나 호출하여 사용가능
    ( ex). println() )

2). 사용자 정의 메서드

  • 프로그래머가 작성한 메서드

3). 정적 메서드

  • static 키워드를 선언하는 메서드
  • 호출 시 메서드 이름만으로 직접 호출 가능(객체 생성 안해도됨)
    클래스를 만들고 객체를 생성하면 그에따른 메모리가 별도 할당된다.
    어떤 객체든 값이 변하지 않는다면 static을 사용해 메모리 낭비를 줄일 수 있다.

4) 인스턴스 메서드

  • non-static 클래스에 속하는 메서드(객체에 소속되어 있음)
  • 호출 시 객체 또는 클래스 인스턴스 필요

6. 재귀호출(recursive call)

  • 메서드 내부에서 자기 자신을 호출하는 것
void method() {
	method();
    }
  • 반복문보다 수행시간이 오래걸리나 반복문과 조건문으로 복잡하게 작성된 코드를 간결하게 작성할 수 있다.
    (비효율적이므로 재귀호출 사용시 간결한 코드가 주는 이득이 큰 경우에만 사용)
  • 예시(팩토리얼 메서드)
static int factorial(int n) {
		int result = 0;
		if (n==1)
			result = 1;
		else
			result = n * factorial(n-1);  /재귀호출
		return result;
	}

0개의 댓글