JAVA 기본 생성자

서재환·2021년 11월 16일
0

JAVA

목록 보기
3/16
기본 생성자에 대해서 알아보게 되었다. JAVA의 기본적인 class를 만들어보면서 많이 나오는 부분
이기 때문이다.

일단 생성자의 개념에 대해서 알아야한다. 생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 
메서드'이다. 메서드라는 것에 주목! 인스턴스 초기화란 인스턴스 변수를 초기화시키는 것을 의미한다.

자바는 객체 생성 시 기본 생성자가 없을 때에만 컴파일러가 기본 생성자를 자동으로 제공해준다. 예를 
들면 아래와 같은 클래스가 있을 때 객체 생성시 기본 생성자가 없어도  컴파일러가 기본 생성자를 생성
해준다.

//class Person 
public class Person() {
  private String name;  
}

Person p1 = new Person();

//아래와 같은 코드로 컴파일러가 class를 인식, 오직 특정 생성자가 없을 때에만 컴파일러가 자동으로 추가함
public class Person() {
  private String name;
  
  public Person() {
    this.name = null;
  }
}

//접근 제어자가 설정되지 않을 경우 public을 제외하고 class와 기본 생성자를 작성해 주면 된다.
class Person() {
  public String name;
}

Person p1 = new Person();

class Person() {
  public Stirng name;
  
  Person() {
    this.name = null;
  }
}

여기서 보아야 할 것이 기본 생성자가 없을 때 컴파일러가 기본 생성자를 제공하기 때문에 어떤 다른 생
성자가 있을 경우(대개 매개변수가 있는 생성자) 기본 생성자를 제공하지 않는다. 따라서 기본생성자 이외
의 생성자(대개 매개변수가 있는 생성자)를 명시적으로 선언 할 경우 기본 생성자를 추가하기 위해서는 명
시적으로 선언이 필요한 것이다. 

// 아래와 같은 class일 때 매개변수 받는 생성자가 있으므로 기본생성자 추가로 원할 경우 추가해 주어야함
public class Person() {
  public String name;
	
  public Person() {
    this.name = null;
  }
  
  public Person(String name) {
    this.name = name;
  }
}

0개의 댓글