728x90
public 리턴타입:출 메소드명(매개변수들:입){ };
ex) String[] method1(){ }
입력값 : 매개변수, 인자 / 출력값 : 리턴값
매개변수(Parameter) -> 전달된 인자를 받아들이는 변수
인자(Argument) -> 어떤 함수를 호출 시에 전달되는 값
//public 리턴타입:출 메소드명(매개변수들:입){ };
public void method1(){
System.out.println("입력, 출력 x");
}
public void method2(int x){
System.out.println(x+"를 이용한 입력 o, 출력 x");
}
public int method3(){
System.out.println("입력 x, 출력 o");
// 메서드 안에 리턴할 부분이 있어야 한다. -> int 사용
// 여기서 10을 리턴했는지 안했는지 알기 위해서
// main에서 객체 생성 후 int a = c1.method3();을 통해 a를 print하면 10 출력 가능
return 10;
}
public void method4(int x,int y){
System.out.println(x+"와 "+y+"를 이용한 입력 o, 출력 x");
}
public int method5(int y){
System.out.println(y+"를 이용한 입력 o, 출력 o");
return y*4;
}
//--------------------------------------------------------------------------------------
// Car 클래스를 상속받은 Suv라는 클래스가 있을 때,
// 아래와 같이 int를 매개변수로 넘겨주는 것처럼 클래스도 매개변수로 넘겨줄 수 있음
public void fill(Suv suv){
System.out.println("Suv에 기름을 넣습니다.");
}
반환 타입이 void(반환 값이 없다) 가 아닌 경우에 반드시 return문이 필요하다.
// String이 아니라 void라면 return을 사용할 수 없고, -> 실행 종료 제외
// String 타입의 result 변수에 결과를 저장할 수 없다.
// number 메소드의 리턴값은 String
// 리턴값이 String이므로 result도 String으로 담는다 - 정의
public static String number(int st, int end) {
int i = st;
String output = "";
while (i < end) {
output += i;
i++;
}
// output에 담겨 있는 문자열을 메소드 외부로 반환하려면
// return 키워드 뒤에 반환하려는 값을 배치해야한다.
return output;
}
// 호출
public static void main(String[] args) {
String result = number(1, 5);
System.out.println(result);
}
그렇다면 왜 굳이 retrurn을 사용할까?
return을 사용하지 않는다면 메소드를 여기 저기 사용할 수 없고 특정한 부분에서만 사용 가능하다.
-> 즉, 부품으로서의 가치를 떨어뜨린다.
ex) 메일로 보내라는 동작을 시킨다면 메소드 정의 부분을 수정시키지 않고 바로 main 메소드에 코드를 작성하면 된다.
return의 또 다른 역할은 메소드를 중단시킨다는 것이다.
그래서 return 뒤에 오는 코드들은 동작하지 않는다.
string 클래스의 메소드
concat을 사용할 때
String str = "hi"; str.concat(" bye");는 str이 그대로 hi인 반면에
str = str.concat(" bye");처럼 변수에 저장한다면 str이 hi bye가 된다.
728x90