Java/객체지향

[객체지향][자바의 정석] - 6.4 생성자

얄루몬 2021. 11. 1. 21:23

6.4 생성자 construct

 

 

생성자(영어: constructor, 혹은 약자로 ctor)는 객체 지향 프로그래밍에서 객체의 초기화를 담당하는 서브루틴을 가리킨다. 생성자는 객체가 처음 생성될 때 호출되어 멤버 변수를 초기화하고, 필요에 따라 자원을 할당하기도 한다. 객체의 생성 시에 호출되기 때문에 생성자라는 이름이 붙었다.

생성자는 대체로 멤버 함수와 같은 모양을 하고 있지만, 값을 반환하지 않는다는 점에서 엄밀한 의미의 함수는 아니다.

📌출처: https://ko.wikipedia.org/wiki/%EC%83%9D%EC%84%B1%EC%9E%90

4.1 생성자

4.2 기본 생성자

기본 생성자 오류난 경우와 오류가 아닌 경우의 비교 분석 

 

# Data_1의 경우엔 생성자가 1개도 없기 때문에 기본생성자가 들어가서 오류가 나지 않는다.

# Data_2의 경우엔 매개변수가 있는 생성자가 있기 때문에 기본 생성자를 꼭 넣어주어야 한다.

 

 

class Car {
    String color;
    String gearType;
    int door;
}

	Car (){ } //기본 생성자 
	Car(String c, String g, int d) { //매개변수가 있는 생성자 작성
    	    color = c;
    	    gearType = g;
    	    door = d
	}
Car c = new Car();
c.color = "White";
c.gearType = "auto";
c.door = 4;
//매개 변수가 있는 생성자를 한 번에 호출
Car c = new Car("white", "auto", 4);
      //객체 생성  //객체 초기화

 

4.3 생성자 this( )

- 생성자에서 다른 생성자를 호출할 때 사용한다.

class Car {
    String color; //색상
    String gearType; //변속기 종류
    int door; //문의 개수
}
    Car2() { //같은 클래스 내에 다른 생성자를 호출 할 땐 this를 쓴다. 
    	this("white","auto", 4); // Car2(String c, String g, int d)를 호출
    } 
    Car2(String color){ //Car2(String c, String g, int d)를 호출
    	this(color,"auto",4);
    }
    Car2(String c, String g, int d) { //
    	    this.color = color;
    	    this.gearType = gearType;
    	    this.door = door;
	}

 

this()는 첫 줄에서만 사용 가능.

 

 

4.4 참조변수 this

참조변수. 변수이름 -> iv 


참조변수 this - 인스턴스 자신을 가리키는 참조변수, 인스턴스의 주소가 저장되어 있다. 모든 인스턴스 메서드에서 지역변수로 숨겨진 채로 존재한다.

this( ), this(매개변수) 생성자 - 생성자, 같은 클래스의 다른 생성자를 호출할 때 사용한다. (코드 중복 제거를 위함 ) 

this와 this()는 비슷하게 생겼을 뿐 완전히 다른 것이다. this는 참조변수이고, this()는 생성자이다.