
1. 메서드의 정의
메서드는 클래스(class) 내부에 존재하는 영역으로 자바 객체지향에서 꼭 알아두어야 할 의미로서, 메서드란 특정 기능을 정의한 코드들의 집합이라고 생각하면 된다.
기본적으로 메서드를 이해하기 쉽게 설명하기 위해 입력값(parameter)과 출력값(return)으로 설명한다.
2. 메서드명
- 메서드의 기능이 드러나도록 식별자의 규칙에 맞게 이름을 작성해야 한다.
- 클래스명과 마찬가지로 여러 개의 단어가 섞이는 경우 각 단어의 첫 번째 문자는 대문자로 한다.
- 단, 처음 시작하는 문자는 항상 소문자로 시작한다.
3. 메서드의 유형 - 총 4가지
3-1) 메서드 기본형
가장 기본이 되는 유형. void(리턴값 없음), 파라미터 없음.

static 같은 클래스 내에 있으면 클래스명 생략이 가능해서 m1();이라고 적어도 가능
다른 클래스에 있다면 꼭 아래와 같이 클래스명을 적어주자

3-2) return값이 있는 메서드
리턴 값을 반환하고 싶으면 return "m2"; 을 써서 m2 의 값을 반환 받으면 된다.
함수 호출 타입을 String 으로 해줬으면 타입을 똑같이 String 으로 받는다.
return 있음 = 반환을 할 수 있음. 리턴값은 하나만!


15번 라인.
m1(); 이 코드로는 9번 라인에 있는 m2 클래스가 메모리에 열리지 않는다.
(m2 클래스가 실행되기 전이니까 = 호출되기 전이니까)
* 실행(호출)하지 않으면 JVM입장에서는 메소드 이름 외엔 아무것도 안보임
16번 라인.
m2();로 호출이 되는 순간, 9번 라인에 있는 m2의 메소드 코드 (10번 라인)가 열린다.
애는 이제 큐랑 스택이 생성되겠지..
* 실행(메인에서 호출)이 되어야지 안의 내용이 열림
= 메서드는 호출될 때만 열린다 (실행된다)
메소드의 실행이 끝나면 리턴 값으로 바뀐다. ⇒ m2()가 "m2"로 바뀐다!
즉, String result = m2; 랑 m2();는 같다는 말!
<출력> - print 일반적으로 출력은 사용자에게 정보를 제공하기 위해 사용. 결과를 화면에 표시하거나 파일에 쓰는 것 <반환> - return 메서드는 일련의 작업을 수행하고 그 결과로 값을 반환할 수 있다. 반환된 값은 메서드를 호출한 곳으로 전달되며, 이 값을 변수에 저장하거나 다른 연산에 사용할 수 있다.
3-4) 파라미터 (Parameters) - 파라미터(투입구)에 값을 받는다.
- 파라미터는 '매개변수'란 뜻이다.
- 즉, 함수를 정의 할 때 외부로부터 받아들이는 임의의 값을 의미한다.
ex) 자판기에 음료를 뽑는 작업을 수행하는 메서드가 있다고 하면
동전 투입구라고 생각 하면 된다.

static void m3 (int n1) 이라고 ( ) 안에 파라미터 int n1을 받는다고 지정했다. 파라미터를 int로 지정했으니까, main 메소드 안에서 m3를 호출할때, () 안에 int 값을 넣어야함. (10번 라인 = m3(아규먼트 (Argment)라고 부름)) // 아규먼트는 1이다.
파라미터 = 매개변수 = 인자
3-5) 파라미터(투입구)가 여러 개일 때
package ex04; public class MethodEx02 { static void m3(int n1) { System.out.println("m3 : " + n1); } static void m4(int n1, int n2) { // 파라미터 (동전 투입구) System.out.println("m4 : " + n1); System.out.println("m4 : " + n2); } public static void main(String[] args) { m3(1); m4(1, 2); // 아규먼트 (동전) } }
// 실행값 m3: 1 m4: 1 m4: 2
파라미터의 개수만큼 arguments를 넣어줘야 한다. m3의 파라미터(매개변수)에 값을 int n1 으로 m4의 파라미터(매개변수)에 int n1, int n2 로 받겠다고 했다. 아큐먼트에 동전을 넣는다. ⇒ 함수에 전달 되는 실제 값 m3에는 1을 넣는다. m4 에는 1, 2를 넣는다.
parameter - 동전 투입구
arguments - 동전 (메인 메소드의 [ m4(1,2); ] 부분) //아규먼츠는 1, 2다.
메소드는 전체적으로 자판기 비유를 들면 이해하기 쉽다.
return값은 콜라가 튀어나오는 것…
Share article