본문 바로가기
Java

[Java] 객체와 클래스 3 : 생성자

by 스응 2023. 2. 6.
728x90
728x90

#  관련 포스팅

  1. 객체 지향 패러다임과 멤버 변수 : https://young0105.tistory.com/13

  2. 메서드 : https://young0105.tistory.com/28

  3. (현재 글) 생성자 : https://young0105.tistory.com/29

 


생성자 (Constructor)

  - 객체를 생성할 때, 객체의 형태에 대한 강제성을 부여하는 것

  - 객체를 생성하기 위해 'new' 키워드와 함께 호출됨

      → 객체가 메모리에 로드될 때 가장 먼저 수행되는 코드

  - 객체가 생성될 때 변수/상수를 초기화하는 기능의 코드가 포함됨

  - 생성자 내에서 메서드 호출 가능

  - 클래스에는 반드시 적어도 하나 이상의 생성자가 존재함

  - 반환 값이 없음 → 선언부에 반환 자료형이 없음

  - 생성자 이름 == 클래스 이름

  - 생성자 오버로딩 (overloading)

      : 매개변수의 조합을 다르게 받는, 이름이 동일한 여러 개의 생성자를 만들어 두는 기법

#  멤버 변수의 값을 초기화하지 않은 경우

  - 자동으로 컴파일러가 기본값으로 초기화해줌

 

자료형 int double boolean String 참조 자료형
기본값 0 0.0 false null null

 

 


기본 생성자 (Default constructor)

  - 매개변수가 없는 생성자

  - 클래스 내부에 생성자가 없을 경우, 컴파일러가 자동으로 생성해두는 생성자

      → 사용자 정의 생성자가 하나라도 있다면, 기본 생성자는 자동으로 만들어지지 않음

 

// 클래스 설계 파일 //

public class 클래스명 {

    자료형 멤버변수1;
    자료형 멤버변수2;
    ...

    // 기본 생성자
    public 클래스명() {}

}

// 메인 함수 파일 //

public class ~ {
    public static void main(String[] args) {

        // 생성자 호출
        클래스명 참조변수 = new 클래스명();

    }
}

 

사용자 정의 생성자

// 클래스 설계 파일 //

public class 클래스명 {

    자료형 멤버변수1;
    ...

    // 사용자 정의 생성자
    public 클래스명(자료형 매개변수1, ...) {
    
        // 매개변수를 이용한 멤버변수 초기화
        this.멤버변수1 = 매개변수1;
        ...
        // 값을 대입하여 멤버변수 초기화
        this.멤버변수n = 값;
        
    }

}

// 메인 함수 파일 //

public class ~ {
    public static void main(String[] args) {

        // 생성자 호출
        클래스명 참조변수 = new 클래스명(매개변수a, ...);

    }
}

 

 


기타 메모

- 객체 자기 자신의 메모리를 가리키는 this
    → this를 이용하면 멤버변수와 매개변수의 이름이 동일해도 구분할 수 있음

 

320x100
반응형

댓글