메소드의 정의 와 호출
정의 : 직접 메소드를 만드는 것
호출 : 만들어진 메소드를 실행하는 것
ex)
public static void numbering(){
int i = 0;
while ( i < 10){
System.out.println(i);
i++
}
}
//윗부분이 메소드의 정의
public static void main(String[] args){
numbering(); // 메소드 호출
}
main
main 메소드는 규칙
실행되기를 기대하는 로직을 위치시켜야한다.
메소드 사용 이유
- 재활용
- 코드량이 적어진다.
- 유지보수에 용이하다.
메소드의 입력
메소드의 입력 값은 매개변수(parameter)를 통해서 이루어진다.
ex)
public static void numbering(int limit){ // < - 매개변수 (파라미터)
int i = 0;
while ( i < limit){
System.out.println(i);
i++
}
}
public static void main(String[] args){
numbering(5); //입력한 매개변수 만큼 숫자 출력 - 0 , 1, 2, 3 ,4 < - 인자 (알규먼트)
}
메소드의 출력
return : 동작 된 결과를 메소드 밖으로 돌려준다는 의미
return 과 메소드의 데이터 타입이 같아야 한다.
메소드의 데이터 타입이 void이면 return이 없다.
return 을 사용 하는 이유 : 부품으로서의 가치를 높이기 위해서 (출력이 아닌 파일에 기록하고 숫자를 계산하는 로직이라면?)
ex)
public static String numbering(int init , int limit){ // < - 매개변수 (파라미터)
int i = init;
String output = "";
while ( i < limit){
// 숫자를 화면에 출력하는 대신 변수 output에 담았다.
output += i;
i++
}
// 중요 ! output에 담겨 있는 문자열을 메소드 외부로 반환하려면 아래와 같이 return 필요
return output;
}
public static void main(String[] args){
// 메소드 numbering이 리턴한 값이 변수 result에 담긴다
String result = nubering(1, 5);
// 변수 result의 값을 화면에 출력
System.out.println(result);
}
return 을 사용 하는 이유
ex)
public static String numbering(int init , int limit){ // < - 매개변수 (파라미터)
int i = init;
String output = "";
while ( i < limit){
// 숫자를 화면에 출력하는 대신 변수 output에 담았다.
output += i;
i++
}
// 중요 ! output에 담겨 있는 문자열을 메소드 외부로 반환하려면 아래와 같이 return 필요
return output;
}
public static void main(String[] args){
// 메소드 numbering이 리턴한 값이 변수 result에 담긴다
String result = nubering(1, 5);
// 변수 result의 값을 화면에 출력
System.out.println(result);
try{
// 다음 행은 out.txt 라는 파일에 numbering이라는 메소드가 반환한 값을 저장
BufferedWriter out = new BufferedWriter(new FileWriter("out.txt"));
out.write(result);
out.close();
} catch(IoException e) {
}
}
복수의 리턴
하나의 변수에 여러개의 값을 담아서 출력하면 된다.
ex 1)
public static String getMember(){
return "홍길동";
}
public static String getMember1(){
return "김길동";
}
public static void main(String[] args){
System.out.println(getMember());
System.out.println(getMember1());
}
ex 2)
public static String[] getMembers(){
String[] members = { "홍길동" , "김길동" };
return members;
}
public static void main(String[] args){
String[] members = getMembers(); // 출력가능
}