NOTE
클래스를 인스턴스화하지 않았다.
클래스를 인스턴스화하지 않는다는 의미를 보충 설명하겠습니다. 다음은 main 메서드의 기본 형식입니다.
public static void main(String[] args) { }
지금까지 정의한 모든 메서드는 메서드를 실행하기 위해,
1. 클래스의 인스턴스를 생성하고
2. 인스턴스를 통해 클래스를 호출했습니다.
main도 메서드인데, main 메서드는 이런 과정을 거치지 않았습니다.
class CodeRunner{ // 직접 정의한 메서드 myPrint public void myPrint() { System.out.println("안녕!"); } public static void main(String[] args) { /* myPrint 메서드를 호출하기 위해서는 CodeRunner 클래스에 인스턴스를 생성하고, 인스턴스에 점을 찍어 myPrint에 접근합니다 */ CodeRunner codeRunner = new CodeRunner(); // 인스턴스 생성 codeRunner.myPrint(); // 메서드 호출 /*그런데 메인 메서드는 메인 메서드를 위해 따로 인스턴스를 생성한 적이 없고, 또 codeRunner.main()과 같이 메서드를 호출한 적도 없습니다*/ } }
즉, 클래스를 인스턴스화하지 않고 사용해왔습니다.