본문 바로가기

java

간단한 생성자 종류 3가지 디폴트 생성자, 오버로딩, 오버라이딩

생성자란? 자바와 같은 객체 지향 프로그램밍에서 객체의 초기화를 담당하는 역활을 하며 생성자는 객체가 처음 생성될 때 호출되어 맴버 변수의 값을 초기화 하고 클래스 내부의 프로그래밍에 따라 값을 할당하기도 한다. 생성자는 객체 생성 시에 호출이 되기 때문에 생성자라는 이름이 생기게 되었다. 대표적인 객체 지향 언어로는 c++, java, c#이 있다.

 

 

자바에서는 생성자를 통해 클래스를 호출할 때 해당 클래스의 내부에서 생성자를 찾게 되는데 이때 아무런 생성자가 존재하지 않을때 디폴트 생성자라는 것을 생성하게 된다. 이것은 컴파일러가 자동으로 제공하는 것이며 아무런 매개변수를 받지 않는 형태로 생성이 되어진다.

 

디폴트 생성자는 모든 경우에 생성이 되는 것은 아니며 프로그래머가 클래스 내부에 별도의 매개변수를 필요로 하는 생성자를 만들경우 디폴트 생성자는 따로 생성이 되어지지 않아 아무런 매개변수를 받지하는 생성자를 호출시 오류가 발생되어 프로그래머가 별도로 작성을 해야 하는 현상이 발생된다.

 

위와 같이 필요에 의해서 생성자를 여러 개 제공하는 경우 생성자 오버로딩이라고 하는데 필요에 따라 매개변수가 다른 생성자를 여러개 만들어 제공을 할 수 있으며 원하는 생성자만을 선택해서 사용할 수 있게 되는 방식입니다.

 

 

생성자 오버라이딩과 오버로딩이 용어에서 약간 헷갈릴수가 있으니 주의 부탁드립니다.

생성자 오버라이딩은 상위 클래스에서 정의한 메소드를 하위 클래스에서 다시 재정의 하는 것인데 메소드의 이름과 반환형 및 매개변수의 선언까지 완전 동일한 상태에서 재정이가 진행될 수 있습니다. 특정 메소드의 대한 기능을 하위 클래스만 개별적으로 필요로 하는 경우에 사용이 됩니다.