메서드(Method)
- 특정 작업을 하는 코드의 집합이다.
- 메서드는 메인에서 실행(호출) 시에 메서드의 코드가 메모리에 열린다. → 호출 전 까진 메서드의 이름만 떠있다.
- 메서드의 실행이 종료되면 리턴 값으로 변한다.
- 서로 다른 파일에서 호출한 메서드를 불러오는게 가능하다.
- 선언 시 Static이나 heap을 사용한다.
메서드의 종류에는
1. 반환형이 없는 메서드 (기본 메서드로 본다)
2. 반환형이 있는 메서드
3. 파라미터가 있는 메서드
4. 파라미터가 여러 개인 메서드
4가지로 나눠 진다.
이는 나중에 예시 코드로 간단하게 알아보자!
메서드의 예시 코드
- 메서드의 종류 1, 2의 예시 (주석을 참고 하자)
package ex04; public class MethodEx01 { static void m1() { // 가장 기본 메서드 : 메모리에 띄워야 하니 스태틱이나 힙을 사용해야한다. (반환형이 없는 메서드) System.out.println("m1"); } static String m2() { // 반환형이 있는 메서드 : return 값의 타입을 꼭 맞춰야한다. System.out.println("m1"); return "m2"; // 메서드 종료 } /** * 메서드는 메인에서 실행(호출) 시에 메서드의 코드가 메모리에 열린다. * ex) 15번 줄은 6번줄이 열리고 16번 줄은 10번 11번이 열린다. * 실행이 끝나면 리턴값으로 변한다. * ex) 16번줄이 "m2"로 변한다. */ public static void main(String[] args) { MethodEx01.m1(); // 메서드 선언 할때는 클래스명.으로 찾는데 : 같은 클래스 내에 있으면 클래스명 생략가능 m2(); String result = m2(); // String result = "m2"; // 위의 설명은 이 코드와 같다. System.out.println("result : " + result); } }
- 메서드의 종류 3, 4의 예시 (주석을 참고 하자)
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); // 인수(아규먼트 - arguments) - 괄호 안의 값 } }
메서드를 선언 시 같은 클래스 내에 존재 하면 클래스 명을 생략 가능하다!
메서드의 괄호 안에 변수를 적을시 이를 매개변수(파라미터)라고 한다!
위의 매개변수를 가진 메서드를 main에서 선언 시 괄호 안의 값을 인수(아규먼트)라고 한다!
메서드 예제 코드
메서드를 만든 코드
package ex04; // 계산기 클래스 = 설계도 public class Calculator { public int add(int n1, int n2) { return n1 + n2; } public int minus(int n1, int n2) { return n1 - n2; } public double divide(double n1, double n2) { return n1 / n2; } public int multi(int n1, int n2) { return n1 * n2; } }
메서드를 호출한 코드
package ex04; import java.util.Scanner; public class CalculatorApp { public static void main(String[] args) { Calculator cal = new Calculator(); double result; result = cal.add(50, 80); System.out.println("add : " + result); result = cal.minus(50, 80); System.out.println("minus : " + result); result = cal.divide(50, 80); System.out.println("divide : " + result); result = cal.multi(50, 80); System.out.println("multi : " + result); } }
Share article