stacktest

Robyn·2023년 4월 28일
0

Java

목록 보기
5/15

Stack 구조 (stack : 쌓다)


StackTest.java

public class StackTest {
	public void methodA() {
		System.out.println("A메소드에 들어옴...");
		methodB();
		System.out.println("A메소드를 나감...");
		return;
	}
	public void methodB() {
		System.out.println("B메소드에 들어옴...");
		methodC();
		System.out.println("B메소드를 나감...");
		return;
	}
	public void methodC() {
		System.out.println("C메소드에 들어옴...");
		System.out.println("C메소드를 나감...");
		return;
	}
}

Run.java

public class Run {
	public static void main(String[] args) {
		System.out.println("main메소드에 들어옴...");
		StackTest st = new StackTest();
		st.methodA();
		System.out.println("main메소드를 나감...");
	}
}

들어온 순서 : main -> A -> B -> C
나가는 순서 : main <- A <- B <- C

돌아가가겠다고 하지 않았음에도 돌아가는 이유는 return;이 생략되어있기 때문이다.
나를 호출해줬던 메소드로 돌아가는 게 return의 기능이다. 단순히 종료의 의미를 갖는 게 아니다.
void이므로 값을 가지고 돌아가지 않는다. 반환값이 없다.
return에는 두 가지 종류가 있다. 아무 값도 없는 것과 값이 있는 것이다.
만약 void가 아니라 int가 들어간다면 return에 int값이 들어가야한다. return 다음 int값 아무것이나 반환해야한다.
★★★나를 불러줬던, 호출했던 메소드로 돌아가게 하는 것이 return이다★★★

0개의 댓글