자바의 생성자(Constructor)

생성자 (Constructor)

  • 특수한 목적을 가지는 메서드
  • 객체의 멤버(변수)를 초기화하는 역할이다 .

주의점

  • 생성자의 이름은 클래스의 이름과 동일해야함.
  • 리턴타입이 없습니다.
  • 객체가 생성될 때 자동으로 1번 호출이 됩니다.
  • 매개변수 조건에 맞춰 오버로딩 가능 (여러개 작성 가능.)
  • 생성자는 클래스당 1개 이상 있어야 함 . + 없으면 이클립스 컴파일러가 자동으로 생성시킵니다.

예시 )


public class ex_Constructor {

public static void main(String[] args) {

    Box b1 = new Box("소형",2000);
    System.out.println(b1.getSize()); 

    System.out.println(b1.getPrice());
}
}
class Box{

private String size;

private int price;


//생성자 오버로딩

//자동으로 생성이 되긴 하나 , 이미 생성자가 존재한다면 자동 생성이 안 됨

public Box() {

// this.size = "";

// this.price = 0;

this(""); //생성자 간의 호출 방법 -> 밑에 box 부름 .

}



public Box(String size) {

// this.size = size;

// this.price = 0;

this(size,0);

}

public Box(String size, int price) {

this.size = size;

this.price = price;



}

public String getSize() {

return size;

}

// public void setSize(String size) {

// this.size = size;

// }

public int getPrice() {

return price;

}

public void setPrice(int price) {

this.price = price;

}

}

출력

위에 선언한 객체 b1 new box 에 있는 내용이 각각에 정리가 된 모습이다.

this 와 super

위 예시코드에 보면 this가 붙어있는 모습을 볼 수 있다

객체 자신을 가리킬 때 쓰는 함수로 멤버,매개변수가 같을 때 구분하기 위함으로 사용되는 코드이다.

public void setPrice(int price){
this.price = price;
}

price가 위에 있는 price인지 지금 이야기 하는 int price의 price인지 구분을 할 수 없기에 this를 통해 객체 자신을 앞에 언급하여 구분할 수 있도록 해준다.

super는 상속관계 자식 클래스가 부모 클래스를 지정할 때 사용하는 코드로 자식이 기존에 가지고 있는 변수와 부모가 가지고 있는 변수를 구분짓기 위하여 존재하는 코드이다.

'java' 카테고리의 다른 글

상속(inheritance),Object 클래스  (0) 2024.02.23
자바의 static  (0) 2024.02.20
자바의 접근 제어자 (Access)  (0) 2024.02.19
자바의 Class  (0) 2024.02.14
자바의 기본 성질  (1) 2024.02.14