1. 메소드 개요
메소드(method)란
- 입력값에 따른 결과를 반환하는 일련의 코드 묶음
- 한 번에 여러 줄의 코드를 수행할 수 있음
- 파이썬의 함수와 같은 역할을 함
- 파이썬과 다른 점
- 아래와 같은 상황이 아닐 때 같은 함수는 중복이 불가능하다.
- 매개 변수의 타입이 다를 때
- 매개 변수의 개수가 다를 때
- 다만 파이썬의 함수와는 다르게 함수의 위치나 순서가 상관이 없다.
- 파이썬은 함수를 미리 선언 해야 하지 만 자바는 상관 없다.
- 아래와 같은 상황이 아닐 때 같은 함수는 중복이 불가능하다.
- 파이썬과 다른 점
메소드의 동작 원리
- 메소드는 호출부와 정의부로 나뉘어 동작
- 호출부: 메소드를 사용하는 영역, 입력 값을 전달하여 그 결과를 돌려받는다.
- 정의부: 입력값을 받아 결과를 만드는 일련의 코드 묶음
2. 메소드 정의와 호출
메소드의 구조
- 메소드명(method name): 메소드의 이름으로, 호출 시 사용
- 입력변수(parameters): 메소드 실행 시 입력값을 저장하는 변수, 매개변수 혹은 파라미터라고도 부름
- 반환값(return type): 메소드의 최종 결과로, 반환될 값을 의미
- 반환 타입(return type): 반환값의 타입을 의미 ```java /*
- TYPE: 반환 타입
- NAME: 메소드 명
- PARAMETERS: 입력변수
- VALUE: 반환 값 */ public static TYPE NAME (PARAMETERS){ … return VALUE; } ```
메소드 정의하기
- 메소드명 작성
- 입력변수 생성
- 반환값 생성
- 반환 타입 명시
메소드 호출하기
- 메소드 명을 적기
- 소괄호 사이에 입력값을 전달
3. 메소드의 유형
단일 입력 변수 메소드
- ex.
정사각형의 넓이를 구하는 메소드
1 2 3
public static int square(int length){ return length * length; }
다중 입력 변수 메소드
- 입력 변수들의 타입이 달라고 상관 없음
- ex.
원기둥의 부피를 구하는 메소드
1 2 3
public static double volume(double radius, double height){ return Math.PI * radius * radius * height; }
입력 변수가 없는 메소드
- ex.
주사위 굴리는 메소드
1 2 3 4
public static int rollDice(){ double x = 6 * Math.random(); return (int) x + 1; }
반환값이 없는 메소드
- void 메소드: 메소드의 반환값이 존재하지 않는 메소드
- 반환 타입은 void
- return 키워드 생략 가능
- ex.
반환값이 없는 메소드를 변수에 넣었을 때
1 2 3 4 5 6
public static void printHello(String msg) { System.out.println("Hello "+msg); } public static void main(String[] args) { printHello("야옹이"); }
- 파이썬
- printHello() 함수 리턴값이 없음
- 변수 result에 None 저장
result = printHello("야옹이");
→ 에러 안남(None 출력)
- 자바
- printHello() 함수 리턴값이 없음
- 변수 result에 리턴값 저장하려고 하면 에러
result = printHello("야옹이");
→ 컴파일 에러
- 파이썬