☕JAVA/🐣 강의 [JAVA]

[JAVA][기초] 생성자 Constructor

디카페인라떼 2022. 10. 5. 11:37

[기초] 시리즈는 본강의를 수강후 정리한 글들 입니다.

Java for Beginner - YouTube

 

Java for Beginner

[교재 link] https://github.com/namoosori/java-for-beginner/tree/master/doc Java for Beginner 강의에서 다루는 내용은 다음과 같습니다. - Java 개요 : Java 언어가 어떤 언어이고 Java 언어를 이용해 프...

www.youtube.com


생성자

  • 클래스의 구성요소 중 하나로, 객체를 인스턴스화 할때 가장 먼저 호출되는 특수한 메소드
  • 생성자의 역할은 객체가 갖는 필드의 초기화이며 다라서 모든 클래스는 하나 이상의 생성자를 가짐.
  • 생성자는 여러개 정의 가능 (생성자 오버로딩)
  • 생성자의 이름은 해당 클래스의 이름과 같고 반환 타입을 갖지 않음.
  • 생성자도 모든 접근제어자를 적용할 수 있으며 일반적으로 public 접근제어자가 적용

 

디폴트 생성자 Defalt Constructor

  • 매개 변수가 없고 구현 내용 없이 정의하는 생성자 = 기본 생성자 / 디폴트 생성자
  • 클래스는 반드시 하나 이상의 생성자를 가지며 사용자가 생성자를 정의하지 않으면 디폴트 생성자가 자동으로 생성.
    • 접근제어자는 다 가능하지만 일반적으로 생성자의 접근지정자는 public. inner class의 경우에는  생성자에도 private 가능(싱글톤 패턴)
  • 생성자에서 면시적으로 필드의 값을 설정하지 않으면 디폴트 값으로 초기화.
    • 디폴트 초기값 : 숫자 타입 (0), 논리타입 (false), 참조 타입 (null)

 

사용자 정의 생성자 User Defined Constructor

  • 클래스 필드의 초기화를 위해서 정의하는 생성자를 사용자 정의 생성자라고 함.
  • 사용자 정의 생성자는 해당 클래스가 갖는 필드의 초기화를 귀해 정의하며 여러 형태로 정의가 가능
  • 만일, 사용자가 하나 이상의 사용자 정의 생성자를 만들었다면 디폴트 생성자는 자동으로 생성되지 않음.

 

생성자 오버로딩
  • 클래스 필드의 초기화는 다양한 방식으로 이루어질 수 있으며 이를 위해 다양한 형태의 생성자를 정의할 수 있음.
  • 생성자의 이름은 반드시 클래스의 이름과 동일해야 하기 때문에, 다수의 생성자 정의는 생성자 오버로딩으로 정의
  • 생성자 오버로딩은 해당 클래스를 구성하는 생성자들이 매개변수 개수와 타입, 순서를 달리하여 정의
    • 파라미터에 정의되는 변수명이 아니라 개수, 타입을 가지고 구분함!
  • 객체의 인스턴스화 과정에서 생성자를 호출하며 이때 전달인자를 다르게 하여 필요한 생성자를 호출

 

this () constructor

  • 생성자 간의 서로 호출하는 기능.
    • 생성자는 객체를 인스턴스화 하는 과정에서 한번만 호출 가능
  • 하나의 클래스에 정의된 다수의 생성자 간에  this() 생성자를 통해 호출이 가능합니다.
  • this() 생성자는 중복되는 코드를 제거하고 생성자를 재사용하기 위해 사용
  • this() 생성자의 호출은 반드시 생성자 이름의 바로 아래에 위치

 


2022.08.10 - [JAVA] - [JAVA] 생성자 / this / 생성자 오버로딩

 

[JAVA] 생성자 / this / 생성자 오버로딩

생성자 모든 클래스는 인스턴스화 될때 생성자를 사용한다. 생성자의 특징 생성자는 리턴타입이 없다. 생성자를 프로그래머가 만들지 않으면 매개변수가 없는 생성자가 컴파일할 때 자동으로

wearegolden.tistory.com