Categories: Java 언어Korean

Java 총 정리[36. 메소드 구조와 활용]

메소드 구조 및 활용

이전 걸음에서 간단하게 메소드 문제를 풀어 봤습니다. main메소드에서만 호출을 하여 문제를 풀었는데 그럼 여기서 의문이 드실 수 있습니다. 메소드를 호출을 하는 것은 main 메소드에서만 호출이 가능 할까? 하는 이런 의문이 드실 수도 있고 생각을 하지 못 할 수도 있습니다. 이런 부분이 저 또한 상당히 중요하다고 생각을 하기 때문에 같이 알아보도록 하겠습니다.

메소드를 좀 더 자세히 살펴 보려면 메소드의 동작 방법과 구조를 알아야 하고 또한 그 구조를 좀 더 세밀하게 활용하는 방법을 알아야 메소드를 사용을 할 경우 원하는 기능이 동작이 되도록 구현을 할 수 있습니다. 그렇기 때문에 이 글을 통해서 메소드에 동작 원리와 구조를 알고 활용을 할 수 있도록 설명을 했습니다. 이 글을 끝까지 읽으신다면 메소드에 대한 이해가 한층 깊어질 수 있습니다.

메소드의 구조는 Stack구조라는 형태로 되어 있습니다. 동작의 원리는 그 Stack구조의 원리로 움직이게 됩니다. 그러면 메소드 구조인 Stack구조를 확실히 이해를 한다면 동작 원리와 방법을 이해를 할 수 있고 활용을 할 수가 있습니다. 이 글을 끝까지 읽으신다면 메소드의 Stack구조와 메소드를 여러 방법으로 활용을 하실 수 있습니다.

메소드 구조

위의 이미지 설명대로 메소드의 구조는 Stack구조를 가지고 있습니다. 그럼 Stack구조는 항아리와 같은 구조를 이루고 있다고 생각을 하시면 됩니다. 그래서 동작의 방식이 Last In First Out 또는 First In Last Out이게 되는데 이건 약자로 LIFO, FILO로 불리고 있습니다. 

예를 들어 항아리에 물이 담겨져 있다고 생각을 해보시면 됩니다. 물을 채우면 맨 밑 부분에서 물이 채워지고 그 물을 마시려고 한다면 마지막에 들어온 상단의 물을 먹게 되는 원리라고 생각을 하시면 됩니다. 이런 원리로 메소드가 움직인 다는 것을 꼭 알고 있으셔야 합니다.

※ main메소드에서만 다른 메소드를 호출을 할 수 있는 것이 아니라 다른 메소드에서 다른 메소드를 부르는 것에 대한 제약이 없습니다. 한마디로 원하는 메소드가 있다면 다른 메소드가 언제든지 호출을 할 수 있습니다.

메소드 소스

위의 소스는 간단하게 형식을 맞게 만들어져서 동작이 되는 소스는 아니고 간단하게 메소드의 이해를 돕기 위한 간략하게 만든 소스라고 생각을 하시면 됩니다.

main() -> A() -> B() -> C() -> D() -> E() 부르는 형식으로 메소드가 메소드를 불러서 타고 들어가는 느낌의 소스로 구현이 되었다고 보시면 됩니다. 중간 중간에 다시 K()메소드를 불러서 조금 더 도움이 될 수 있도록 구현을 했습니다.

메소드 소스 설명

위의 설명 사진과 같이 동작을 하기 때문에 결과는 EDCABAA가 출력이 되게 됩니다. 이렇게 출력이 되는 전반적인 구조를 그림으로 설명을 했기 때문에 잘 보고 이해를 하시면 메소드 호출과 이동에 대한 이해가 한층 더 깊어 지실 수 있습니다.

※메소드는 호출을 하면 그 메소드로 이동 후에 메소드에서 더 이상 실행 할 명령이 없으면 나를 호출을 했던 메소드로 이동을 하게 됩니다. (중요)

Dolphin

Recent Posts

Java 총정리[97. Java GUI]

Java GUI Java GUI에 대해서 이번 걸음에서 배움으로써 GUI에 전반적인 지식과 Java GUI를 구현하는 방법…

4개월 ago

Java 총정리[96. Java TCP 통신 프로그램 구현]

Java TCP 통신 프로그램 구현 Java TCP 통신 프로그램 구현을 위해서 이전 걸음에서 쓰레드에 대한…

5개월 ago

Java 총정리[95.쓰레드 통신]

쓰레드 통신 이전 걸음에서 쓰레드의 임계영역에 대해서 같이 공부를 했습니다. 동기화에 대한 개념을 계속적으로 하고…

5개월 ago

Java 총 정리[94. 쓰레드 임계영역]

쓰레드 임계영역 이전 걸음에서 쓰레드의 동기화에 대해서 같이 공부를 했습니다. 동기화에 대한 전반적인 내용을 공부하고…

6개월 ago

Java 총 정리[93. 쓰레드 동기화]

쓰레드 동기화 이전 걸음에서 계속 쓰레드에 대해서 공부를 하고 있습니다. 쓰레드는 상당히 중요한 개념이기 때문에…

6개월 ago

Java 총 정리[92. 쓰레드 join()]

쓰레드 join() 이전 걸음에서 쓰레드의 전반적인 실행 흐름에 대해서 공부를 했습니다. 이제 배운 실행 흐름…

6개월 ago

This website uses cookies.