메소드를 조금더 자세히 이해하기 위해서는 지역변수에 대해서 이해를 해야합니다. 지역변수는 특정구역 안에서만 사용되는 변수를 말합니다.
말로만 들어서는 이해가 잘가지 않으실겁니다.
지역변수에 대해서 쉽게 이해하기위해 코드를 작성해봤습니다.
public class Run {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int width = sc.nextInt();
int height = sc.nextInt();
int area = getArea(width, height);
int circum = getCircum(width, height);
System.out.println(area);
System.out.println(circum);
}
public static int getArea(int width, int height) {
int result = width * height;
return result;
}
public static int getCircum(int width, int height) {
int result = (width + height) * 2;
return result;
}
}
조금 자바를 다뤄보신분이라면 result라는 변수가 두번 사용된걸 눈치채실 수 있으실겁니다. 이 곳에 지역변수의 개념이 들어갑니다.
쉽게말해 지역변수는 구현부인 {} 사이에서만 사용할 수 있다는 뜻입니다. 따라서 getArea메소드의 result는 getArea의 구현부 {} 사이에서만 사용을 할수 있습니다.
그럼 위에서 나온 result를 다른 메소드에서도 사용하려면 어떻게 해야할까요?
return함수는 두가지의 사용법이 있습니다.
- 'return 0;' 처럼 뒤에 값을 넣게되면 해당 변수를 반환하라는 뜻
- 해당 메소드를 중지시키라는 뜻
return뒤에 값을 넣게되면 값을 반환하라는 뜻이됩니다.
따라서 main메소드에서 getArea를 호출하여 사용한 후 값을 가져와 사용할 수 있게됩니다.
또 다른 리턴의 예시로는 아래와 같이 사용이 됩니다.
public void hello(int n) {
if(n == 1) {
return;
}
else {
System.out.println("Hello World");
}
}