티스토리 뷰

생성자

생성자는 인스턴스가 생성될때 호출되는 메소드 입니다.

인스턴스 초기화 작업에 주로 사용하는데요,

 

반복적인 인스턴스를 생성할때마다 인스턴스를 초기화 시키게 되면

불편하고 소스가 복잡해질수도 있기때문에

 

초기값을 지정해주어 조금더 편리하게 인스턴스를 생성할수 있도록 해줍니다.

 

특징

1.생성자가 없을땐 컴파일중에 자동으로 기본생성자를 만들어 줍니다.

하지만, 생성자를 하나라도 만들어 두었다면 직접 기본생성자를 만들어주어야 합니다.

 

2.매개변수를 전달받아 초기화할수있고, 생성자역시 메소드이기때문에 매개변수를통해

오버로딩이 가능합니다.

 

생성자의 선언방법!

클래스이름() {}

 

 

 

 

 

생성자 간의 호출 this()

 

Car(String colors, String gearTypes, int doors){

color = "white";

gearType = "auto";

door = i;

}

 

Car(){

    this("white", "auto", 4);

}

 

생성자간의 호출을 시켜주는 this();는

기존에 있던 생성자를 호출할수 있습니다.

 

 

 

 

car() {                                        car() {

    color = "white";                              this("white", "auto", 4);

    gearType = "auto";         =>      }

    door = 5;

}

두 생성자모두 매개변수로 아무것도 정해주지 않았을시

자동으로 초기화를 해주는 생성자입니다.

생성자간의 호출을 사용하면 위의 코드와 같이 더욱 간결해 질수있습니다.

 

 

 

 

매개변수와 인스턴스의 비교 this.

car(String color){

    color = color;

}

 

위와 같이 만약 생성자에서 매개변수로 받은 변수와

생성된 인스턴스의 이름이 같다면?

 

this.로 구별이 가능합니다!

car(String color){

    this.color = color;

}

 

this.는 참조변수와 비슷한 역할을 하여 인스턴스변수를 타겟해주는

기능을 해주어 생성자를 더 편리하게 이용할수 있게 해줍니다.

 

 

 

생성자를 이용한 복사

매개변수로 참조변수를 건네받아 복사할수 있습니다.

Car(car c) {

    color = c.color;

    gearType = c.gearType;

    door = c.door;

}

 

 

위으 코드는 기존에 있던 인스턴스 변수의 참조변수를 건네받아

새로 생성된 인스턴스에게 복사하는 코드입니다.

 

위와 같이 생성자를 이용해 초기화 과정중에 복사가 가능합니다.

 

 

 

인스턴스 생성시 고려할것

1.클래스 - 어떤 클래스의 인스턴스를 생성할것인가?

2.생성자 - 선택한 클래스의 어떤 생성자를 사용하여 인스턴스를 생성할 것인가?

 

 

 

자바의 생성자에 대해서 알아보았는데요,

아직까진 저도 코딩실력이 되질않아서 생성자와 인스턴스들을

사용하지 않고있어요

 

많이 부족하지만 도움이 되셨길 바라며

열심히 하시길 바랍니다!

 

 

 

 

'프로그래밍 > java' 카테고리의 다른 글

JAVA - 객체지향(6)  (452) 2015.04.04
java - 객체지향(5)  (411) 2015.04.03
java - 객체지향(3)  (388) 2015.04.02
Java - 객체지향(2)  (403) 2015.03.30
JAVA - 객채지향(1)  (374) 2015.03.25
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함