생성자(constructor)

roglog·2021년 6월 15일
0

java의 정석

목록 보기
9/36

1. 생성자란?


  • 생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'이다.
  • 인스턴스 변수의 초기화 작업이나, 인스턴스 생성 시 실행되어야 할 작업을 위해 사용 됨
  • 생성자도 오버로딩 가능
  • 하나의 클래스에 여러개의 생성자 존재 가능
  • 생성자의 조건
    1. 생성자의 이름은 클래스의 이름과 같아야 한다.
    2. 생성자는 리턴 값이 없다.

2. 기본 생성자 (default constructor)


  • 모든 클래스에는 반드시 하나 이상의 생서자가 정의되어야 함.
  • 생성자를 정의하지 않으면 컴파일러가 '기본 생성자'를 제공.
  • 기본 생성자는 매개변수도 없고 내용도 없음

3. 매개변수가 있는 생성자


Ex)

class Car {
	String color;
    
    Car() {} // 생성자
    Car (String c) { // 생성자
    	color = c;
    }
}

4. 생성자에서 다른 생성자 호출하기 - this(), this


  • 생성자 간 호출하는 조건
    1. 생성자의 이름으로 클래스이름 대신 this를 사용한다.
    2. 한 생성자에서 다른 생성자를 호출할 때는 반드시 첫 줄에서만 호출이 가능하다.
      • 생성자 내에서 초기화 작업도중에 다른 생성자를 호출하게 되면, 호출된 다른 생서자 내에서도 멤버변수들의 값을 초기화 할 것이기 때문

Ex)

class Car {
	String color;
    int door;
    
    Car() {
    	this("white", 4);
    }
    
    Car(String color) {
    	this(color, 4);
    }
    
    Car (String color, int door) {
    	this.color = color;
        this.door = door;
    }
}

class CarTest {
   public static void main(String[] args) {
		Car c1 = new Car();
        Car c2 = new Car("blue");
   }
}
  • this
    • this는 참조변수로 인스턴스 자신을 가리킴
    • this를 사용할 수 있는 것은 인스턴스멤버 뿐임(static메서드에서는 불가)
    • 모든 인스턴스메서드에 지역변수로 숨겨진 채 존재함

java의 정석 chapter6

profile
Full Stack Developer 📚

0개의 댓글