- 프로그램의 시작점
- java 프로그램이 시작되는 시작점을 의미하는 main은 public, static, void, main,
(String[] args) 라는 키워드로 구성된 하나의 {...} 블록이다.
- 특정 기능(=연산)을 그룹화 해서 재사용하기 위한 단위
// 메서드 public static void f() { int x = 100; int y = x + 1; System.out.println(y); }
- 정의된 메서드는 다른 메서드를 구성하는 {...} 안에서 다음의 형식으로 사용 될수 있으며, 이를 메서드를 호출한다고 한다.
// 메서드 호출 // 여러번 사용이 가능하다 f(); f(); f(); f();
- java 프로그램의 메서드(=함수)는 자신이 실행되는데 필요한 조건값을 메서드 이름 뒤의 괄호안에서 변수 형태로 선언한다.
- 이를 메서드 파라미터라고 한다.
// 메서드 파라미터 public static void f1(int a) { int b = 10; System.out.println(a + b); }
- 메서드가 연산을 수행하는데 두 개 이상의 파라미터가 필요하다면 콤마(,)로 구분하여 선언할 수 있다.
// 다중 파라미터 public static void plus (int x, int y) { System.out.println(x + y); } public static void minus (int x, int y) { System.out.println(x - y); }
- 메서드 정의하면서 파라미터가 명시되어 있다면 해당 메서드를 호출하면서 파라미터를 전달해 주어야 한다.
- 메서드가 연산 결과를 자신이 호출된 위치에 반환하는 것을 "리턴"이라고 하며,
반환되는 값을 "리턴 값"이라고 한다.- 메서드 안에서 값을 리턴하기 위해서는 "return" 이라는 키워드가 사용된다.
- 값을 리턴하는 메서드는 선언시에 "void" 키워드 대신, 리턴하는 값에 대한 변수형이 명시된다. void는 리턴값이 없다는 의미이다.
// 메서드의 리턴값 public static void main(String[] args) { // 메서드의 리턴값을 변수에 저장 int z = f1(5); System.out.println(z); boolean result = f2(10); System.out.println(result); // 리턴값을 출력에 사용 System.out.println(f2(2)); } public static int f1(int x) { int y = x + 1; return y; } public static boolean f2(int x) { if(x > 5) { return true; }else { return false; } }
- JAVA의 메서드 역시 서로 호출하는 것이 가능하다.
- 호출된 메서드가 값을 리턴하는 경우, 리턴받은 값을 다른 연산에 사용할 수 있다.
문제 1. "Hello, World~" , "메서드가 호출되었습니다." 를 출력하는 메서드를 각각 만들어 호출하세요
public class Main05 { public static void main(String[] args) { helloWorld(); showMsg(); System.out.println(returnM()); } public static String returnM() { // String 타입 return "문자열"; } public static void helloWorld() { System.out.println("Hello, World~"); } public static void showMsg() { System.out.println("메서드가 호출되었습니다."); } }
- 출력값
문제 2. 반환값이 없고 받고 인자값(매개변수, 피라미터)이 2개 있는 덧셈 메서드를 구현하여 인자값의 결과값을 출력하여라.
public class Main06 { public static void main(String[] args) { plus(10,20); } public static void plus(int x, int y) { int result = x + y; System.out.println(result); } }
- 출력값
문제 3. 반환 값이 있고 받는 인자값(매개변수, 피라미터)이 없는 메서드를 구현하세요.
public class Main07 { public static void main(String[] args) { System.out.println(returnMethod()); } public static int returnMethod() { return 200; // 반환값 } }
- 출력값
문제 4. 반환값이 있고, 받는 인자값(매개변수, 피라미터)이 있는 메서드를 구현해보세요.
public class Main08 { public static void main(String[] args) { System.out.println(plusM(10, 20)); System.out.println(plusM(10, 30)); System.out.println(plusM(10, 40)); System.out.println(plusM(10, 50)); } // int a, int b = 인자값 public static int plusM(int a, int b) { return a + b; // 반환값 } }
- 출력값