Jay's Developer Note

[JAVA] Class - 2(생성자) 본문

JAVA

[JAVA] Class - 2(생성자)

Jay(J) 2022. 2. 25. 00:33
728x90

생성자(Constructor)

생성자(Constructor)는 클래스로 객체를 생성할 때 객체의 초기화하는 특수한 메소드이다.

메소드와 비슷한 모습을 하고 있지만 조금 다른 생성자의 특징을 알아보겠다.

특징

 - new 연산자와 같이 사용된다.

 - 이름에 걸맞게 객체 생성 시 사용된다.

 - 주로 객체 생성 시 객체의 멤버 변수를 초기화하는 역할을 한다.

 - 생성자의 네이밍은 클래스 이름과 동일해야만 한다.

 - return 타입이 없다.

 - 생성자가 없을 경우 JVM 이 자동으로 기본 생성자를 설정한다.

 - 사용자 정의 생성자가 있을 경우 기본 생성자는 없어진다.(기본 생성자를 함께 쓰려면 직접 기본 생성자를 추가해야 한다.)

형식
[접근 제어자] 생성자명(매개 변수) {
  // 코드
}

접근 제어자란 해당 변수, 메소드, 생성자, 클래스 등에 대한 접근 권한을 제어하는 문법이다.

대표적으로 public, private 등이 있다.

접근 제어자는 추후 상세하게 다시 알아보겠다.

사용방법
class ClassName {
  private String stringVariable;
  
  // 기본 생성자
  public ClassName() { }
  
  // stringVariable 값을 String 로 받아서 초기화하는 생성자
  public ClassName(String stringVariable) {
    
    // this 는 객체 자신을 의미하며 변수처럼 . 을 이용하여 변수, 메소드를 사용할 수 있음
    this.stringVariable = stringVariable;
  }
  
  // stringVariable 값을 int 로 받아서 초기화하는 생성자
  public ClassName(int stringVariable) {
    
    // this() 를 사용하면 객체 자신을 호출하는 것이기 때문에 생성자를 호출함
    this(String.valueOf(stringVariable));
  }
}

생성자는 메소드와 비슷하기 때문에 마찬가지로 오버로딩이 가능하다.

this 란 것이 있는데 this 는 현재 객체 자신을 뜻한다.

그래서 this.변수, this.메소드, this() 등으로 사용할 수 있다. 그래서 생성자에서 매개 변수를 받아서 사용할 경우 this 가 없다면 받아온 매개 변수를 그대로 사용하는 격이 된다.

이를 방지하려면 매개 변수와 멤버 변수의 이름을 다르게 해 주거나 예제처럼 this 를 사용하면 된다.

728x90

'JAVA' 카테고리의 다른 글

[JAVA] Class - 4(메소드)  (0) 2022.03.13
[JAVA] Class - 3(멤버 변수)  (0) 2022.03.11
[JAVA] Class - 1(클래스)  (0) 2022.02.24
[JAVA] Intellij 에서 JAVA 실행하기  (0) 2022.02.18
[JAVA] 자바 언어 기본 문법 - 6(분기문)  (0) 2022.02.13