생성자(Constructor)

생성자(Constructor)

Java생성자(Constructor)에 대한 정리

 

자바 생성자의 문법은 new ClassName(); 이다.

 

public class TestMain {     
    public static void main(String[] args) { 
        TestClass testA = new TestClass("아반떼", "검은색");
    }
}

 

생성자는 클래스의 사용을 위해 객체를 생성할 때 사용한다.

기본적으로 개발자가 따로 생성자를 작성해주지 않는다면 자바 컴파일러는 소스코드를 컴파일링 하며 기본 생성자를 작성하여 준다. 이것이 우리의 눈에는 직접적으로 보이지 않을 뿐이다.

이 기본 생성자를 이용하여 객체를 생성한다면 객체를 만든 클래스의 필드를 모두 자동으로 초기화시켜주는데, 이 말은

int의 경우 값이 0으로 초기화가 될 것이고, String 같은 경우 null로 초기화가 되는 것을 말한다.

생성자를 개발자가 직접 작성하는 경우는 객체가 생성되는 시점에 특정 필드를 이러한 기본값이 아닌 원하는 값으로 지정하여 초기화하고자 함이다.

예를 들어 위 코드 블록과 같이 매개변수를 지정하여 생성자를 호출할 경우 TestClass에는

 

public class TestClass {
    String model;
    String color;
    int a;

    TestClass(String model, String color){
        this.model = model;
        this.color = color;
    }
}

 

위와 같이 시그니처가 동일한 생성자가 따로 작성되어 있어야 한다.

그리고 위와같이 작성하여 매개변수를 보낼 경우, 객체가 생성되는 시점에 String modelString color 필드는

각각 null, null이 아닌 아반떼, 검은색으로 초기화된다.

물론 int a 필드의 경우 따로 생성자에서 지정해준 값이 없으므로 자동적으로 0으로 초기화가 될 것이다.

그리고 이 생성자는 개발자가 원하는 대로 여러 개를 작성할 수 있는데, 이를 생성자 오버로딩이라고 부른다.

 


© 2022. All rights reserved.