자바의 main 함수에 void라고 쓰여 있는 것을 본 적이 있을 것이다. 지금까지는 별 생각없이 사용했지만 그 쓰임새에 호기심이 생겨 void란 무엇이고 언제 사용되는지 알아보도록 하겠다.
자바에서 void는 특별한 데이터 타입으로, 함수 또는 메서드의 리턴 타입을 나타낸다. 리턴 타입이란 메서드가 수행한 작업의 결과를 반환하는 데이터 타입을 의미한다. 하지만 void는 리턴값이 없음을 나타낸다. 메서드가 어떤 작업을 수행하긴 하지만 그 결과값을 반환하지 않는 경우에 사용된다.
public class VoidExample {
public void printNum(int num) {
System.out.println("숫자 출력:" + num);
}
}
위 예제는 printNum 메서드가 void를 반환타입으로 가진다. 작업을 수행하긴 하지만 호출자에게 어떤 값을 반환하지 않고 print문을 화면에 출력하는 기능만 가진다.
이제 printNum의 메서드를 호출해 보겠다.
public class Main {
public static void main(String[] args) {
VoidExample ex1 = new VoidExample();
ex1.printNum(5);
}
}
메인 클래스에서 VoidExample 클래스의 인스턴스를 생성하고, printNum 메서드를 호출한다. 이 메서드는 화면에 "숫자 출력: 5" 라는 메시지를 출력하고 종료된다. 이때 호출자에게 어떤 값을 반환하지 않으므로 void를 사용했다.
💡 비교: 리턴값이 있는 경우
public class ReturnExample {
public int score(int a, int b) {
int sum = a + b;
System.out.println(sum);
return sum;
}
}
위 예제 코드처럼 리턴 타입을 구성하여 메서드를 선언하면 반드시 return문으로 종료시켜 줘야 한다.
이제 void에 대해 알아보았으니, 자바의 메인 메서드가 public static void인 이유에 대해 알아보자.