Code States | OOP 기초(3) - 생성자

yeonk·2022년 5월 23일
1
post-thumbnail

💡 먼저 보면 좋을 자료
Code States | OOP 기초(2) - 필드와 메서드






1. 생성자(Constructor)


생성자는 new 연산자를 통해서 인스턴스를 생성할 때 반드시 호출되며, 가장 먼저 실행된다.
생성자는 인스턴스 변수를 초기화 시키는 역할을 한다.

  • 모든 클래스는 생성자가 반드시 존재

  • 클래스는 하나 이상의 생성자를 가질 수 있음

public 클래스(매개변수) {}






기본 생성자(Default Constructor)

  • 클래스를 정의할 때 생성자 작성을 생략하면 컴파일러가 자동으로 기본 생성자를 생성

  • 사용자가 생성자를 별도로 정의한 후 기본 생성자를 호출할 경우 컴파일 에러 발생

  • 생성자를 명시적으로 선언하는 이유 : 객체를 다양하게 초기화 하기 위하여

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






인스턴스 초기화

  • 인스턴스를 생성하면서 생성자를 호출하면, 생성자에 의해 값을 초기화 할 수 있다.

  • 초기화: 필드를 초기화하거나, 메소드를 호출하여 객체를 사용할 준비를 하는 것

  • 생성자를 실행하지 않으면 클래스를 통해 객체를 만들 수 없음

  • new 연산자에 의해 생성자가 실행 → 힙 영역에 객체생성 → 객체의 주소 반환 → 객체의 주소를 클래스 타입 변수에 저장 → 객체에 접근할 때 이용






2. 생성자의 특징


  • 클래스명과 동일하게 정의

  • 생성자 앞에는 접근 제어자만 위치할 수 있음 (static, final 불가)

  • 반환 값이 없음 → void, 반환 타입 작성하지 않음

  • 상속 불가






3. 생성자 오버로딩


  • 매개변수를 달리하는 생성자를 여러 개 선언

  • 다양한 객체 초기화를 위함

  • 오버로딩 특징에 따라 매개변수의 타입과 개수가 달라야 함






4. 다른 생성자 호출 → this()


생성자 오버로딩이 많아질경우 중복코드가 증가할 수 있기 때문에 다른 생성자를 호출할 수 있도록 하며, 그 때 this() 를 이용한다.

  • this() 코드는 생성자의 첫 줄에서만 허용한다.

  • 코드 실행 순서는 this()로 호출한 생성자의 실행 후 본 생성자로 돌아와 실행한다.






this 키워드

인스턴스 변수와 매개변수가 동일한 이름을 가질 때 구분해주기 위한 용도로 사용(필드명과 지역변수의 구분)
인스턴스 자기 자신을 가리킴

  • 모든 메서드는 클래스의 객체를 가리키는 참조변수 this를 가짐

  • 컴파일러가 this.를 추가해주기 때문에 생략이 가능






5. 참고자료


[JAVA/자바] 생성자(Constructor)와 초기화

4.Java 자바 - 클래스의 구성 멤버 [생성자]

Java Constructors

생성자

Java Constructors

0개의 댓글