java에서는 클래스의 생성자는 생략이 됩니다.
유명한 HelloWorld 소스입니다.

package net.okjsp;

public class HelloWorld {
 public static void main(String[] args) {
  System.out.println("Hello World");  }
}


이 유명한 소스에서 HelloWorld() 부분이 생략된 것이죠.

package net.okjsp;

public class HelloWorld {
 public HelloWorld() {
 }

 public static void main(String[] args) {
  System.out.println("Hello World");

 }
}

메소드처럼 ()은 붙어있지만, 리턴 타입이 없습니다. 바로 클래스 자신의 타입을 리턴하기 때문이죠.

언제 호출이 될까요. 바로 new 로 인스턴스를 만들 때입니다. 다음 소스를 실행해보세요.

package net.okjsp; public class HelloWorld {
 public HelloWorld() {
  System.out.println("생성자 호출");
 }
 public static void main(String[] args) {
  HelloWorld helloWorld = new HelloWorld();
  helloWorld.printOut();

 }
 public void printOut() {
  System.out.println("Hello World");
 }
}

결과는 다음과 같습니다.
생성자 호출
Hello World

파라미터를 준 생성자가 등장한다면 얘기는 흥미진진해집니다. 자바 스펙이라도 한 번 봐두면 좋을 듯 하네요.
 

+ Recent posts