본문 바로가기
JAVA

[JAVA] 생성자

by 주옹스 2020. 8. 11.

생성자(Constructor) 란?

    생성자는 new 연산자와 같이 사용되어 객체를 생성할 때 호출되며, 객체 생성 후

    생성자 몸체를 실행하여 초기화를 담당한다.

 

 

    # 특징

         1 . 클래스와 동일한 이름을 갖는다.
         2 . 하나의 클래스에는 하나 이상의 생성자를 갖는다.
         3 . 생성자는 리턴 타입이 존재하지 않는다.
         4 . 생성자는 일반 메소드처럼 호출 할 수 없으며 객체를 생성할 때 new 다음에 기술한다.
         5 . new 생성자(); 처럼 생성자를 호출하면 객체의 메모리가 할당되고 생성자의 몸체가

            실행되어 초기화를 담당한다.
         6 . 생성자는 중복 정의가 가능하다.

              -> this(), super();
         7 . 생성자를 만들지 않으면 컴파일러는 아무런 코드도 없는 디폴트 생성자를 만든다.
              -> public 클래스명() {} 

         8 . 접근 제한 수식어인 public, protected, private만을 쓸 수 있으며, abstract, final, native, static, strictfp, 

              synchronized 등의 수식어를 사용할 수 없다.

 

 

생성자

 

 

 

 

# 디폴트 생성자 (Default Constructor) ?

   생성자를 정의하지 않는 경우컴파일러는 인수도 없고, 아무런 기능도 지니지 않는 생성자를

   자동 삽입하는데 이를 디폴트 생성자(기본 생성자)라 함.

 

  - 모든 클래스에 적어도 하나의 생성자가 있음을 보장

 

  - 생성자가 하나라도 존재하면 컴파일러는 디폴트 생성자를 추가하지 않음

 

 

디폴트 생성자

 

 

 

 

 

# 여러 종류의 생성자

 

여러 종류의 생성자

 

 

 

 

# 생성자 중복 정의(Overloading)

    생성자도 일반 메소드처럼 중복 정의(overloading)가 가능. (인수의 개수나 인수의 타입이 다르게 정의)

 

   

생성자 중복 정의

 

 

 

# this

   -  this는 현재 클래스의 인스턴스로 객체 자신에 대한 참조 값을 가짐.

 

   -  this는 현재 클래스의 인스턴스를 참조 하기 때문에 생성자나 인스턴스 메소드 내에서만 사용하며

      클래스 메소드에서는 사용할 수 없다.

 

   -  생성자의 선두에서 this([인수], ...)를 이용하여 중복 정의된 다른 생성자를 단 한번 호출할 수 있다.

 

 

    [사용 형식]

    ㄱ . 객체 자신의 인스턴스 변수 참조

          -> this.인스턴스변수

   

    ㄴ . 객체 자신의 인스턴스 메소드 호출

          -> this.인스턴스메소드([인수])

    

    ㄷ . 메소드에서 자신의 객체 리턴

         -> return this;

 

    ㄹ . 생성자의 선두에서 중복 정의된 다른 생성자 호출

          -> this([인수, ...]);

 

 

this 키워드

 

     

this overloading

'JAVA' 카테고리의 다른 글

[JAVA] 파일처리 예시  (0) 2020.08.18
[JAVA] 입출력 스트림 (I/O Stream)  (0) 2020.08.18
[JAVA]인터페이스 (Interface)  (1) 2020.08.11
[JAVA] String _ API  (0) 2020.08.06
[JAVA] 비정형인자  (0) 2020.08.04