Java 프로그램은 여러가지의 클래스들로 구성되어 있는데, 이러한 클래스들이 가지고 있는 각각의 기능들 이를 바로 메소드라고 합니다.
메소드는 아래 그림과 같은 구조로 이루어져 있다.
타입(type)은 메소드의 이름 앞에 위치하며, 메소드 수행 결과 값의 자료형(Types)을 나타낸다. 메소드명(method name)은 여는 소괄호 ( 앞에 위치하고 말 그대로 이름을 의미한다. 파라미터(parameters)는 매개변수라고 불리며, 소괄호 안 ( ... )에 위치하여 외부로부터 전달받은 값을 저장한다. 중괄호에 둘러 쌓인 부분{ ... }은 메소드의 동작을 적는 영역이다.
main() 메소드를 예로 구조를 파악해 봅시다.
class Methods {
// public static: 두가지 키워드는 나중에 배움. 일단 따라칠것!
// 리턴타입: void - 반환 값이 없음을 의미.
// 메소드명: main
// 파라미터: String[] args - 추후 설명.
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
타입의 위치에 void가 위치해 있는데, void란 메소드가 아무런 값도 반환 하지 않음을 의미한다. 메소드의 이름 위치에는 main이 적혀 있고, 파라미터로는 String[] args라는 내용이 위치해 있다.
class NewLine {
public static void threeLines() {
System.out.println("");
System.out.println("");
System.out.println("");
}
public static void main(String[] arguments) {
System.out.println("Line 1");
threeLines();
System.out.println("Line 2");
}
}
위 코드의 실행결과는 아래와 같다.
어떠한 과정을 거쳐 위와 같은 출력결과가 나오게 되었을까?
먼저 프로그램의 시작점인 main 메소드의 첫줄로 인해 “Line 1”이라는 문자열이 출력된다.
그 다음으로 다음 행인 threeLines()가 수행이 되는데, 여기서 바로 메소드의 호출이 일어나게 된다. 따라서 실행의 흐름은 10행에서 threeLines() 메소드가 정의되어있는 2행으로 넘어간다.
그 다음의 실행흐름은 threeLines() 메소드 내부의 System.out.println() 메소드를 3번 실행한 뒤 threeLines() 메소드 호출이 종료되고서야 비로소 main 메소드로 되돌아오게 된다.
되돌아온 실행 흐름은 System.out.println("Line 2"); 구문을 실행하여 “Line 2”를 출력한다. 이제 더 이상 main() 메소드 내부에 수행할 행이 없으므로 프로그램이 종료된다.