평행코드

생성자(Constructor) 본문

Java

생성자(Constructor)

나의 오류는 누군가 겪었던 오류 2023. 9. 7. 23:10
생성자

클래스를 객체로만들어낼때 무조건 이용하는 것이며, 객체 속성의 초기 값을 설정하는 데 사용할 수 있다.

 

생성자는 클래스와 이름이 동일해야한다.

생성자 이름은 클래스 이름과 일치 해야 하며, 반환 유형을 가질 수 없다. (예 : void) 

 

기본 생성자, 매개변수가 있는 생성자, 메서드의 예시

public class MyClass {
    private int value;

	// 기본 생성자
    public MyClass() {
        this.value = 0;
    }
    
    // 매개변수가 있는 생성자
    public MyClass(int value) {
        this.value = value;
    }

    // 메서드
    public int getValue() {
        return value;
    }
}
기본 생성자

작성하지 않은 경우, 클래스 사용 시 JVM이 자동으로 기본 생성자 생성

매개변수 생성자

매개변수 생성자 작성 시 JVM이 기본 생성자를 자동으로
생성해주지 않음

객체 생성 시 전달받은 값으로 객체를 초기화 하기 위해 사용

상속에서 사용 시 반드시 기본 생성자를 작성

this

모든 인스턴스 메소드에 숨겨진 채 존재하는 레퍼런스로 할당된 객체를 가리킴
함수 실행 시 전달되는 객체의 주소를 자동으로 받음

public class Academy{
    private String name;
    public Academy() { }
    public Academy(String name) { this.name = name; } // 이게 더 어떤 변수가 들어가 있는지 알기쉬움
    // public Academy(String userName) { name = userName; }
}

* 위와 같이 매개변수를 가지는 생성자에서 매개변수 명이 필드명과 같은 경우
매개변수의 변수명이 우선이므로 this 객체를 이용하여 대입되는
변수가 필드라는 것을 구분해줌

this()

생성자, 같은 클래스의 다른 생성자를 호출할 때 사용하며 반드시 첫 줄에 선언하며

코드의 중복을 제거하기 위해 사용한다

 

'Java' 카테고리의 다른 글

상속이란? 그리고 super  (0) 2023.09.12
객체배열  (0) 2023.09.11
메소드 Getter와 Setter  (0) 2023.09.07
배열과 2차원 배열  (0) 2023.09.06
객체와 클래스 (인스턴스 필드와 클래스필드의 차이)  (0) 2023.09.05