생성자 (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 |