ksouth9

객체지향언어(4) - 메서드(1) 본문

Java

객체지향언어(4) - 메서드(1)

ksouth9 2022. 3. 3. 17:34

메서드(method)


메서드란 어떠한 특정 작업을 수행하기 위한 명령문의 집합

 

  • 어떤 값을 입력하면 이 값으로 작업을 수행해서 결과를 반환한다.
  • 입력값 또는 출력값이 없을 수도 있다.
  • 입력값과 출력값이 모두 없을 수도 있다.

메서드를 사용하는 이유


중복되는 코드의 반복적인 프로그래밍을 피할 수 있다. 또한 모듈화로 인해 코드의 가독성도 좋아진다.

그리고 프로그램에 문제가 발생하거나 기능의 변경이 필요할 때도 손쉽게 유지보수를 할 수 있다.

 

1. 높은 재사용성

  • 한번 만들어 놓은 메서드는 계속해서 호출이 가능하다.

2. 중복된 코드의 제거

  • 반복되는 문장들을 묶어서 하나의 메서드로 작성하여 메서드를 호출하는 한 문장으로 대체
  • 전체 소스 코드의 길이 짧아지고, 오류가 발생할 가능성도 줄어든다.

3. 프로그램의 구조화

  • 기능별로 여러 개의 메서드에 담아 프로그램의 구조를 단순화시킨다.

메서드의 선언과 구현


메서드는 크게 두 부분, '선언부(header)''구현부(body)'로 이루어져 있다.

반환타입 메서드이름 (타입 변수명, 타입 변수명, ...){	//(선언부)
	//메서드 호출시 수행될 코드(구현부)
}
int add(int a, int b){	//(선언부)
	int result = a + b;
    	return result;	//호출한 메서드로 결과를 반환한다.(구현부)
}

메서드 선언부

  • 메서드의 이름, 매개변수 선언, 반환타입 으로 구성되어 있다.
  • 메서드가 작업을 수행하기 위해 어떤 값들을 필요로 하고 작업의 결과로 어떤 타입의 값을 반환하는지에 대한 정보 제공
  • 메서드의 선언부를 변경하게 되면, 그 메서드가 호출되는 모든 곳도 같이 변경해야 한다.
  • 위의 코드를 기준으로 int(반환타입), add(메서드 이름), (int a, int b)(매개변수선언(입력))

매개변수 선언

  • 메서드가 작업을 수행하는데 필요한 값들(입력)을 제공받기 위한 것
  • 필요한 값의 개수만큼 변수를 선언하며 각 변수 간의 구분은 쉼표','를 사용
  • 일반적인 변수선언과 달리 두 변수의 타입이 같아도 변수의 타입을 생략할 수 없다.
  • 값을 입력받을 필요가 없다면 괄호 안에 아무 것도 적지 않아도 된다.

반환타입

  • 메서드의 작업수행 결과인 반환값의 타입을 적는다.
  • 반환값이 없는 경우 반환타입으로 'void'를 적어야한다.

메서드 구현부

  • 괄호{} 안의 내용을 '메서드 구현부'라고 한다.
  • 메서드를 호출했을 때 수행될 문장들을 넣는다.

return문

  • 수행한 결과, 반환값
  • 구현부{}안에 'return 반환값;'이 반드시 포함되어야한다.
  • 반환 타입이 'void'일 경우 포함 되지 않아도 상관없다.
  • 수행한 결과인 반환값을 호출한 메서드로 전달한다.
  • 반환타입과 일치하거나 자동 형변환이 가능한 것이어야한다.
  • 단 하나의 값만 반환할 수 있다.
int add(int x, int y){
	int result = x + y;
    return result;	//작업 결과(반환값)를 반환한다.
}

반환타입(int)result(반환값)일치해야 한다.

 

지역변수

  • 메서드 내에 선언된 변수를 '지역변수'라고 한다.
  • 메서드 내에 선언된 변수들은 그 메서드 내에서만 사용가능하다.
  • 서로 다른 메서드일 경우에는 같은 이름의 변수를 선언해도 된다.

 

'Java' 카테고리의 다른 글

객체지향언어(4) - 메서드(3)  (0) 2022.03.03
객체지향언어(4) - 메서드(2)  (0) 2022.03.03
객체지향언어(3) - 변수  (0) 2022.03.03
객체지향언어(2) - 객체,인스턴스  (0) 2022.03.03
객체지향언어(1) - 클래스,객체  (0) 2022.03.02