article thumbnail image
Published 2021. 7. 16. 13:25
728x90


생성자(Constructor)란?

  • 생성자는 클래스 이름과 같은 이름의 함수다.
  • 생성자는 void, int, String 등의 반환형이 선언돼 있지 않아서 리턴 값이 없다.
  • 생성자는 중복 정의될 수 있다.
  • 생성자는 객체를 초기화하는 작업만 하는 함수다.
  • 생성자를 정의하지 않으면 컴파일러가 알아서 디폴트 생성자를 만들어 사용한다.

쉽게 말해서 생성자란, 객체를 만드는 특별한 메소드다.

 

 

생성자의 역할

생성자는 두 가지 역할을 한다.

  1. 객체 생성 : 객체를 만드는 것
  2. 객체 초기화 : 객체의 필드 값을 설정하는 것

생성자를 몰랐을 당시 생성자는 객체를 만들기만 했다. 초기화는 따로 진행했었다.

 

/* 1. 객체 생성 */
Cat c = new Cat();

/* 2. 필드 초기화 */
c.name = "네로";
c.weight = 3.78;
c.age = 3;

 

생성자를 활용하면, 위 코드를 단 한 줄로 만들 수 있다.

/* 객체 생성과 동시에 초기화 */
Cat c = new Cat("네로", 3.78, 3);

 

생성자 호출과 정의

생성자 또한 메소드이다. 따라서 호출과 정의로 나뉘어 사용한다.

class Cat{
    String name;
    double weight;
    int age;
    
    // 생성자 정의
    public Cat(String name, double weight, int age) {
        this.name = name;
        this.weight = weight;
        this.age = age;
    }
}

public class CatExam {
    public static void main(String[] args) {
        Cat cat1 = new Cat("고영희",5.64,10); //호출 부분
    }
}

이때 this라는 키워드를 사용하게 되는데 

  • 앞의 this.name은 필드 name을 말하고 =(이퀄) 뒤의 name은 매개변수를 의미한다.
  • 즉 매개변수의 값을 필드에 대입하라는 의미가 된다.

 


총내용을 정리하자면

 

생성자

  • 생성자는 객체를 만드는 특별한 메소드다.
  • 생성자는 역할은, 객체 생성과 필드 초기화이다.

생성자 특징

  • 생성자 또한 메소드이기에, 호출과 정의로 나뉜다.
  • 생성자와 일반 메소드와의 차이는 리턴 타입의 유무다.

'JAVA' 카테고리의 다른 글

Set 과 Iterator  (0) 2021.07.23
접근 제한자와 게터(Getter) 세터(Setter)  (0) 2021.07.19
Thread(쓰레드)  (0) 2021.07.15
Generic(제네릭)  (0) 2021.07.15
StringBuffer(스트링버퍼)  (0) 2021.07.13
복사했습니다!