본문으로 바로가기

클래스(메소드 인수, 리턴 값)

category 프로그래밍/java 2017. 8. 27. 11:14

인수를 사용하여 정보 전달하기


메소드에 건네주는 정보를 인수라고 부른다. 인수의 종류에는 가인수(parameter)와 인수(argument)로 나뉜다


void setNum(int n) int형 n변수(인수)를 준비합니다.

{

num = n;  인수를 메소드 안에서 사용

System.out.println("차량번호를" +  num +"으로 바꾸었습니다.")

}


실행결과


차량번호를1234으로 바꾸었습니다.

연료 양을20.5으로 바꾸었습니다.


인수를 전달하여 메소드 호출하기

class Car

{

int num;

double gas;

인수를 갖는 메소드

void setNum(int n) 값을 받은 가인수(parameter)이다.

{

num = n;

System.out.println("차량번호를" + num + "으로 바꾸었습니다.");

}

void setGas(double g)

{

gas = g;

System.out.println("연료 양을"+ gas + "으로 바꾸었습니다.");

}

인수가 없는 메소드

void show()

{

System.out.println("차량 번호는" + num + "입니다.");

System.out.println("연료 양은" + gas + "입니다.");

}

}



public class Sample4 {


public static void main(String[] args) {

// TODO Auto-generated method stub

Car car1 = new Car();

 메소드에 실인수(argument)로 1234를 전달하여 호출

car1.setNum(1234);  ---> 값을 바꾸어서 호출이 가능하다.

car1.setGas(20.5);  --> 값을 바꾸어서 호출이 가능하다.

 

}


}


출력결과

차량번호를1234으로 바꾸었습니다.

연료 양을20.5으로 바꾸었습니다.



이 메소드 안에서는, setNum() 메소드에 값1234를 전달한 다음 호출하는 코드를 실행시킨다.
여기에서는 차량번호 '1234'를 메소드에 전달한 셈이다.

1234라는 값은 인수 n에 저장하고 그것을 num변수에 대입시켜 출력이 되는 것을 확인 할 수 있습니다.



변수 값을 전달해서 호출하기

class Car

{

int num;

double gas;

void setNum(int n)

{

num = n;

System.out.println("차량번호를" + num + "으로 바꾸었습니다.");

}

void setGas(double g)

{

gas = g;

System.out.println("연료 양을"+ gas + "으로 바꾸었습니다.");

}

void show()

{

System.out.println("차량 번호는" + num + "입니다.");

System.out.println("연료 양은" + gas + "입니다.");

}

}



public class Sample4 {


public static void main(String[] args) {

// TODO Auto-generated method stub

Car car1 = new Car();

int number = 1234;

double gasoline = 20.5;

car1.setNum(number);  변수를 실인수로 사용하여 호출 할 수 있다.

car1.setGas(gasoline);


둘 이상의 인수를 가지는 메소드 정의하기


sample5.java 둘 이상의 인수를 가지는 메소드를 호출하기

class Car

{

int num;

double gas;

void setNumGas(int n, double g)

{

num = n;

System.out.println("차량번호를" + num + "으로 바꾸었습니다.");

}

void setGas(double g)

{

gas = g;

System.out.println("연료 양을"+ gas + "으로 바꾸었습니다.");

}

void show()

{

System.out.println("차량 번호는" + num + "입니다.");

System.out.println("연료 양은" + gas + "입니다.");

}

}

public class Sample5 {


public static void main(String[] args) {

// TODO Auto-generated method stub


Car car1 = new Car();

int number = 1234;

double gasoline = 20.5;

car1.setNumGas(number, gasoline);

}


}

실행결과


차량 번호를 1234로 연료 양을 20.5로 바꾸었습니다.

setNumGas()메소드는 다음처럼 값을 전달한다.


가인수            실인수

n <----------   number값

g <----------   gasoline값


주의사항 


가인수와 실인수의 개수가 다를 경우 메소드를 호출할 수 없다.
void setNumGas(int n, double g)의 메소드 인자는 2개이므로 인수를 1개만 전달해서 호출 할 수 없다.



메솓드의 리턴 값


메소드의 정의

리턴 값의 형(type) 메소드(method) 명(인수 목록)(1)

(1)리턴 값의 형을 지정한다.

{

문장;

. . .

return 식;  (2) 식의 결과값을 호출한 곳에 돌려준다.

}


class Car

{

int num;

double gas;

int getNum()  : int형 값을 돌려주는 메소드

{

System.out.println("차량 번호를 조사했습니다.");

return num; 호출 한 곳에 값을 반환한다.

}

double getGas()

{


System.out.println("연료 양을 조사했습니다.");

return gas;

}

void setNumGas(int n, double g)

{

num = n;

gas = g;

System.out.println("차량번호를" + num + "으로, 연료 양을" + gas +"으로 바뀌었습니다.");

}

void show()

{

System.out.println("차량 번호는" + num + "입니다.");

System.out.println("연료 양은" + gas + "입니다.");

}

}

public class Sample6 {


public static void main(String[] args) {

// TODO Auto-generated method stub

Car car1 = new Car();

car1.setNumGas(1234, 20.5);

int number = car1.getNum();   리턴 값이 있는 메소드를 호출한다

리턴값을 변수 number에 대입


double gasoline = car1.getGas();

System.out.println("샘플 자동차를 조사한 결과 ");

System.out.println("차량번호는" + number +"연료 양은" + gasoline + "이었습니다.");

}


}


실행결과


차량번호를1234으로, 연료 양을20.5으로 바뀌었습니다.

차량 번호를 조사했습니다.

연료 양을 조사했습니다.

샘플 자동차를 조사한 결과 

차량번호는1234연료 양은20.5이었습니다.




리턴 값이 없는 메소드 사용

void setNumGas(int n, double g) 반환 값을 가지지 않는 메소드에는 void라고 적는다.

{

num = n;

gas = g;

System.out.println("차량번호를" + num + "으로, 연료 양을" + gas +"으로 바뀌었습니다.");

}


return 문

return ;  메소드를 실행시킨 곳으로 돌아간다.


void setNumGas(int n, double g) 반환 값을 가지지 않는 메소드에는 void라고 적는다.

{

num = n;

gas = g;

System.out.println("차량번호를" + num + "으로, 연료 양을" + gas +"으로 바뀌었습니다.");


return;  메소드를 실행시킨곳으로 돌아간다.

}