☕ 자바 JAVA/☕ 클래스와 함수 Class & Method

[JAVA]생성자 Constructor

뉴이 NUEY 2023. 10. 3. 22:40
반응형

 

 

인스턴스가 생성될 때마다 호출되는
인스턴스 초기화 메서드

 

규칙

  • 이름이 class 이름과 같아야 한다
  • 리턴값이 없다. 그래도 void 안 붙임
  • 모든 class는 반드시 생성자를 가진다(안 적으면 complier가 알아서 만들어줌)

 

기본 생성자
Default Constructor

 

매개변수parameter가 없는 생성자이다.
생성자가 하나도 없을 때 complier가 자동으로 추가한다.

 

그냥 호출해도 불러와지지만

 

기본생성자를 적어주는 게 기본입니다


생성자 오버로딩
 기본생성자가 필수인 이유는 new로 호출할 때마다
초기화한 class를 참조변수에 새로운 주소값에 담기위함이겠죠.
호출 시, 원하는 대로 사용하려면 매개변수parameter를 담아 호출하려면 생성자 오버로딩이 필요합니다.

 

매개변수가 다른 생성자들
매개변수로 넘긴게 없으니 초기값 null과 0이 출력되었습니다
이런식으로 초기화 해줘도 되겠지만
그럼 굳이 color = c; 와 같이 쓸 필요가 없습니다
new CarA("white", 4); 로 간편하게 사용하기 위해서 매개변수를 가진 생성자가 필요합니다

 


매개변수가 있는 생성자 작성시
기본생성자 필수기재

매개변수가 있는 생성자를 작성했다면 기본생성자를 적지 않으면 error 발생

 

 


생성자의 접근제어자
  • 생성자의 접근제어자는 대부분은 public을 사용합니다.
    그럼 예외적인 경우를 알아보면..
  • protected 생성자
    : 상속을 위해 기본 생성자를 제공할 때
  • private 생성자
    : Singleton, Utility class, static factory method pattern

※ 이 규칙은 메서드에도 거의 동일하게 적용됩니다.

 

 

 

참조 https://youtu.be/HXh2ZSgg-oQ?si=K9LvNClLC0Eh8A6x 

반응형