본문 바로가기

JAVA

[Java] Constructor : 생성자

생성자

객체를 생성할 때 호출하는 메서드
리턴 타입이 없음

기본 생성자

생성자 코드가 없으면 컴파일러가 기본 생성자 제공

 public ClassName(){}

생성자 작성

일반 멤버 변수의 초기화를 위해 파라미터가 있는 생성자를 작성할 수 있다.
단, 생성자를 작성하면 기본 생성자는 제공되지 않는다.

  ...클래스 내용
  SampleClass(int a){
  this.a = a;
  }
}
//클래스 생성
SampleClass(1)
SampleClass() // error

this 키워드

참조변수로써 객체 자신을 가리킴
로컬 변수와 멤버 변수의 이름이 같을 때, 객체의 변수임을 명시적으로 나타냄

class SampleClass{
    String name;
    SampleClass(String name){
        //name = name        //앞의 name이 SampleClass의 name을 뜻하지 않음
        this.name = name;
    }
}

this는 객체에 대한 참조이므로, static 영역에서 this 사용 불가

this()

메서드와 마찬가지로 생성자도 오버로딩 가능
한 생성자에서 다른 생성자를 호출할 때 사용
생성자의 첫 줄에서만 호출 가능

 SampleClass(int num){
    this.num = num;
}
SampleClass(String name){
    this(num) // SampleClass(num)는 불가
    this.name = name;
}

'JAVA' 카테고리의 다른 글

[Java] Package  (0) 2024.01.17
[Java] Inheritance : 상속  (0) 2024.01.17
[Java] Abstraction  (0) 2024.01.16
[Java] 객체지향  (0) 2024.01.15
[Java] 자바 기초와 실수하기 쉬운 부분  (0) 2024.01.15