[JAVA] 메소드의 void, return

JAVA  메소드 / 메소드의 void, return

메서드는 크게 두부분 선언부와 구현부로 이루어져있다. 아래와 같은 형식으로 작성된다.

int add(int a, int b)   =====> 선언부
{      
    int result = a + b;    ======> {}블럭 안 구현부
    return result;
}


메서드 add 앞에 int는 반환타입(출력) 즉 반환받고자하는 결과값의 데이터타입이다. 여기서 return한 result값은 int형의 값만 반환한다.

각각의 매개변수에는 데이터타입을 지정해줘 해당 데이터타입 이외의 값을 받지 못하도록 한다. 매개변수로 받게 될 데이터타입이 모두 동일하다 하더라도 int a, b 와 같은 형식으로 데이터타입을 생략할 수 없으로 각각의 매개변수마다 데이터타입을 작성해줘야 한다.

그리고 java에서 메소드는 값을 반환하거나 바로 출력하는 2가지 방식이 존재한다. 두 가지 방식에는return 과 void 방식이 있다.

return 방식으로 작성된 경우 값을 반환하여 다른 메소드로 값을 전달하거나 출력할 수 있도록 돕는다. 

return으로 반환된 값은 반환타입과 일치하거나 적어도 자동 형변환이 가능해야한다.

반면에 void로 작성된 메소드는 값을 전달하지않고 해당 메소드 안에서 값을 직접 출력한다.

return방식의 경우 반환값의 타입을 메소드명 앞에 작성해준다. 매개변수로 들어오는 값또한 매개변수명 앞에 타입을 작성해주어야 한다. 그러면 메소드가 실행되면 결과값이 메소드명 앞에 작성한 데이터타입으로 반환된다.

void방식의 경우 값을 반환하지않고 해당 메소드 안에서 값을 출력하기 때문에 데이터로 전달받는 매개변수에 타입을 작성하여 데이터를 받도록한다. 그러면 매개변수로 전달받은 데이터의 타입으로 값을 출력한다.


return방식 





void방식



위 두 코드를보면 return방식으로 작성되어 반환된 값을 void메소드의 매개변수로 전달하여 값을 출력하는것을 볼 수 있다.

메소드의 반환타입이 void가 아닌 경우 반드시 return문을 작성해야하며 반환타입이 void인 경우에는 return문을 생략한다. return문이 생략가능한 이유는 컴파일러가 메서드의 마지막에 return문을 자동적으로 추가해주기 때문이다.

메소드 작성은 main메소드가아닌 public class안에 작성해야한다.

사용자로부터 입력값을 받고자 할 때는 return방식으로 작성해야한다.

그리고 void는 메서드에만 작성이 가능하다. 클래스, 변수, 생성자에는 사용 불가

매개변수 유효성검사

메서드의 구현부를 작성할때 제일 먼저 해야하는 일이 매개변수의 값이 적절한 것인지 확인하는 것이다. 데이터 타입을 지정하였더라도 타입만 맞으면 어떤 값도 매개변수를 통해 넘어올 수 있기 때문에 모든 경우의 수를 대비해서 코드를 작성해야한다. 조건문을 통해 유효성 검사를 할 수 있다. 특정 조건에서 경고메세지를 띄워 다른값을 입력하도록 사용자를 유도하는 방식등으로 유효성 검사 코드를 작성해야한다.

결과적으로 메서드를 작성하면 매개변수로 여러 값들을 받게되는데 이때 메서드 내부에 유효성 검사하는 코드를 반드시 작성해야한다.





댓글