- 수업소개 -
메소드는 작은 프로그램이라고 할 수 있습니다. 입력값에 따라서 다양하게 동작하는 프로그램을 만들 수 있는 것처럼, 메소드도 입력값을 받아서 처리할 수 있도록 개선할 수 있습니다. 그 방법을 살펴보겠습니다.
앞서 만들었던 printTwoTimesA() 메소드의 아쉬운 부분이 있다. 만약 a 가 아니라 b를 출력하고 싶다면?
public class WhyMethod {
public static void main(String[] args) {
// 100000000 lines of code
printTwoTimesA();
// 100000000 lines of code
printTwoTimesA();
}
public static void printTwoTimesA() {
System.out.println("-");
System.out.println("a");
System.out.println("a");
}
}
다음과 같이 b를 두번 출력하는 printTwoTimesB() 메소드를 만들어서 사용할 수 있다. 하지만 이 코드도 효율적이지 못하다. 언제나 똑같은 결과를 가지는 리플레이 정도의 기능만을 가지고 있다.
public class WhyMethod {
public static void main(String[] args) {
// 100000000 lines of code
printTwoTimesA();
// 100000000 lines of code
printTwoTimesA();
// 100000000 lines of code
printTwoTimesB();
}
public static void printTwoTimesA() {
System.out.println("-");
System.out.println("a");
System.out.println("a");
}
public static void printTwoTimesB() {
System.out.println("-");
System.out.println("b");
System.out.println("b");
}
}
앞서 사용했던 Math.floor(), println() 과 같은 메소는 입력값에 따라서 다르게 동작한다.
따라서, 메소드에 입력값을 주면, 그 입력값에 따라서 메소드가 다르게 동작하도록 하고 싶다.
public class WhyMethod {
public static void main(String[] args) {
//인자, argument
printTwoTimes("a", "-");
// 100000000
printTwoTimes("a", "*");
// 100000000
printTwoTimes("a", "&");
printTwoTimes("b", "!");
}
//매개변수,parameter
public static void printTwoTimes(String text, String delimiter) {
System.out.println(delimiter);
System.out.println(text);
System.out.println(text);
}
}
- 인자(Argument) : 메소드를 호출하면서 넘겨줄 값
- 매개변수(Parameter) : 메소드 내에서 사용할 변수를 지정한다.
자바는 이렇게 해석한다.
"printTwoTimes 메소드를 정의하고 있다. 그리고 이 메소드의 괄호 안에 들어오는 첫 번째 값은 반드시 String 타입이고, 그렇게 들어온 값은 이 중괄호({}) 안에서 text라는 이름의 변수의 값이 되겠다. 두 번째 값은 String 타입이고 delimiter라는 변수의 값이 되겠다."
이전과 똑같이 동작하지만 코드는 훨씬 더 효율적으로 바뀌었다.
표현하고자 하는 텍스트가 무엇이냐에 따라서 메소드가 추가되는 그런 비효율적인 일을 더 이상 할 필요가 없어진 것이다.
main 메소드의 Argument(인자)
public static void main(String[] args){}
- String[] : 문자열 배열 타입의 값을 받겠다
- args : main 이라는 메소드를 자바가 실행할 때 입력해주는 입력값이 args로 들어오게 된다.
즉, 사용자가 프로그램을 실행할 때 주입해준 변수를 main 함수 안에서 사용할 수 있게 된다.
[Run Configurations] > [Arguments] 탭에서 공백(space)을 구분자로 하여 인자 값을 두 개 입력한 뒤, [Apply]
main() 함수 내에서 브레이크포인트를 걸어준 뒤, 디버그 모드로 실행시키면, 매개변수 args의 [0] 번째와 [1] 번째에 각각 값이 저장된 것을 확인할 수 있다.
'코딩공부 > JAVA' 카테고리의 다른 글
JAVA method [4] - 메소드의 활용 (0) | 2019.12.11 |
---|---|
JAVA method [3] - 메소드의 출력 (0) | 2019.12.11 |
JAVA method [1] - 메소드의 기본 형식 (0) | 2019.12.11 |
JAVA 제어문 [4] - 종합응용 (0) | 2019.10.30 |
JAVA 제어문 [3] - 반복문과 배열 (0) | 2019.10.30 |