JAVA method - 4. 메소드의 입력
단순 반복만 대체가 아닌 함수 괄호 안에 입력값에 따라 메소드가 다르게 작동하게 하는 방법?
- 해당 메소드 안 println() 안에 변수명으로 바꿔주면, 밖에서 해당 메소드 호출하고 ()안에 입력되는 값에 따라 출력된다
- 아래 코드표 참조
메인 메소드 main(String[] args) {의 디테일한 의미
main이라는 메소드 있어야 자바가 프로그램을 호출한다는 약속
String뒤에 []는 문자열 배열
args는 자바가 메인메소드를 실행할 때, 입력해주는 입력값이 args를 통해서 들어가게됨
public static void printTwoTimes(String text) { 이 코드를 자바가 어떻게 받아들일까?
- printTwoTimes라는 메소드를 정의하고 있고, 이 메소드 ()안에 들어온 첫번째 값은 반드시 String타입으로 받으며, {}안에서 text라는 변수의 값이 되겠구나라고 생각한다
- 이 메소드 밖에서 printTwoTimes 메소드를 호출하면 printTwoTimes()안에 첫째값을 "a"이구나 그럼 자바는 text 값은 {}안에서 "a"이구나라고 생각
- printTwoTimes메소드 안에 "a”를 변수명 text로 변경하면, 메소드 데이터를 추가해야할 것을 더이상 수정할 필요가 없게됨
- 메소드명(데이터타입 변수명) {메소드 작동내용}
만약 위의 구분표시----를 다른걸로 메소드처럼 일괄 변환하고 싶다면?(두번째 변수 추가)
public static void printTwoTimes2(String text, String delimiter) {처럼 두번째 파라미터 추가와 메소드 밖에서 호출할 메소드 ()에도 인자를 추가해주면 된다
// delimiter 매개변수를 추가함
public static void printTwoTimes2(String text, String delimiter) {
System.out.println(delimiter); // delimiter 구분자라는 의미
System.out.println(text);
System.out.println(text);
- 매개변수(parameter) : 아래 새로 만든 메소드 안에 변수명을 매개변수한다
- 메소드 밖에서 메소드를 사용하는 쪽으로 주입한 값을 메소드 안으로 흘려보내주는 매개자라고 해서 매개변수
- 인자(arguement) : 해당 메소드 밖에서 호출하는 메소드명 ()안에 입력값을 인자라 한다
public class method04 {
public static void main(String[] args) { // main이라는 메소드 있어야 자바가 프로그램을 호출한다는 약속
// String뒤에 []는 문자열 배열. args는 자바가 메인메소드를 실행할 때, 입력해주는 입력값이 args를 통해서 들어가게됨
printTwoTimes("a");
// 1억번 코드 반복
printTwoTimes("b");
// 1억번 코드 반복
printTwoTimes2("a","----"); // delimiter(구분자) 적용 메소드 호출
printTwoTimes2("a","****");
printTwoTimes2("b","%%%%");
printTwoTimes2("b","!!!!");
// 위의 함수 안에 입력 된 값을 인자(argument)
}
// 아래 text, delimiter와 같은 변수를 파라미터(parameter)라고 부름.
// 메소드 밖에서 메소드를 사용하는 쪽으로 주입한 값을 메소드 안으로 흘려보내주는 매개자라고 해서 매개변수
public static void printTwoTimes(String text) {// 이 코드를 자바가 어떻게 받아들일까?
System.out.println("----"); // printTwoTimes라는 메소드를 정의하고 있고
System.out.println("a"); // 이 메소드 ()안에 들어온 첫번째 값은 반드시 String타입으로 받으며
System.out.println(text); // {}안에서 text라는 변수의 값이 되겠구나라고 생각한다
} // 메소드명(데이터타입 변수명) {메소드 작동내용}
// 이 메소드 밖에서 printTwoTimes 메소드를 호출하면 printTwoTimes()안에 첫째값을 "a"이구나
// 그럼 자바는 text 값은 {}안에서 "a"이구나라고 생각
// printTwoTimes메소드 안에 "a'를 변수명 text로 변경하면, 추가되거나 수정할 메소드 데이터를 더이상 할 필요가 없게됨
// 만약 위의 구분표시----를 다른걸로 메소드처럼 일괄 변환하고 싶다면?
public static void printTwoTimes2(String text, String delimiter) {
System.out.println(delimiter); // delimiter 구분자라는 의미
System.out.println(text); //
System.out.println(text);
}
}