EEALL@ONCE

☕ 생성자 본문

언어💻/자바☕

☕ 생성자

올엣원스 2023. 10. 27. 22:59
728x90

생성자(constructor)는 객체 지향 프로그래밍 언어에서 클래스의 인스턴스를 초기화하는 특별한 종류의 메소드입니다. 생성자는 클래스의 인스턴스가 생성될 때 자동으로 호출되며, 주로 다음의 목적으로 사용됩니다:

  1. 인스턴스 초기화: 객체가 생성될 때 필드 값을 초기화하는 데 사용됩니다. 이것은 객체의 상태를 설정하고, 필수 인스턴스 변수를 초기화하는 역할을 합니다.
  2. 매개변수 전달: 생성자는 호출될 때 매개변수를 전달받아 객체를 원하는 상태로 설정할 수 있습니다. 이를 통해 객체의 속성을 외부에서 지정할 수 있습니다.
  3. 오브젝트 초기화 로직 수행: 객체가 생성될 때 특정한 초기화 로직을 실행할 수 있습니다. 예를 들어, 파일을 열거나 네트워크 연결을 설정하는 등의 작업을 수행할 수 있습니다.

Java에서 생성자는 다음과 같이 선언됩니다:

public class MyClass {
    // 기본 생성자 (파라미터 없는 생성자)
    public MyClass() {
        // 초기화 로직을 여기에 작성
    }

    // 매개변수를 받는 생성자
    public MyClass(int parameter1, String parameter2) {
        // 초기화 로직을 수행하고 매개변수로 전달받은 값을 필드에 할당
    }
}

기본 생성자는 클래스가 아무 생성자를 정의하지 않았을 때 자동으로 생성되며, 매개변수를 받는 생성자는 클래스 작성자가 직접 정의해야 합니다.

예제 코드를 보겠습니다. 

package Constructor;

public class EeACmpny {
    int no;
    String name;

    //  ⭐ 생성자(constructor) : 인스턴스를 만드는 메소드
    //  ⭐ this : 생성될 인스턴스를 가리킴
    public EeACmpny(int no, String name) {
        this.no = no;
        this.name = name;
    }
    // `this`  - 만들어질 인스턴스를 가리킴
    //- 메소드 내에서 같은 이름의 변수나 인자가 없다면 식별자는 `this` 의 필드를 가리킴
    //- 같은 이름의 변수나 인자가 있다면 덮어씌워짐


    //- 자동생성
    //        - 윈도우: `alt` + `insert`
    //        - 맥: `command` + `N`


    String intro(){
        EeACmpny thisStore =this;
        return "%d호 %s 점입니다.".formatted(no,name);
    }

    //String intro(): 이 메소드는 no와 name 필드의 값을 문자열로 반환합니다.
    // %d호 %s 점입니다. 문자열에 no와 name 값을 포맷하여 반환합니다.
}
package Constructor;

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



        EeACmpny store1 = new EeACmpny(1,"뉴욕");

        int storeNo = store1.no;
        String store1Name = store1.name;

        String store1Intro =store1.intro();


    }
}
728x90