728x90
📗 생성자
생성자는 객체가 생성될 때 초기화를 위해 실행하는 메소드를 말한다.
✅ 생성자의 특징
- 생성자는 메소드이다.
- 생성자 이름은 클래스 이름과 반드시 동일해야 한다.
- 생성자는 매개 변수 개수를 달리하여 같은 이름으로 여러개 작성 가능하다. (오버로딩)
- 생성자는 new 를 통해 객체를 생성할 때 객체 당 한번 호출 된다.
- 생성자의 목적은 객체를 초기화 함에 있다.
- 객체가 생성될 때 반드시 호출되기 때문에 따라서 하나 이상 선언되어야 한다.
만약 개발자가 생성자를 작성하지 않으면 컴파일러가 자동으로 기본 생성자를 삽입해준다.
📗 기본 생성자
기본 생성자는 매개 변수가 없고 아무 작업 없이 단순 리턴하는 생성자이다.
디폴트 생성자 라고도 한다.
기본 생성자가 없어도 컴파일 오류가 나지 않는다.
-> 컴파일러가 자동으로 기본 생성자를 삽입해주기 때문이다.
개발자가 클래스에 하나라도 생성자를 만들면 기본 생성자를 자동으로 삽입하지 않는다.
class Animal{
public Animal(){} // 기본 생성자
}
class Animal{
public void setName(); // 기본 생성자가 없어도 오류가 나지 않음
}
Animal cat = new Animal(); // 컴파일러가 자동으로 기본 생성자를 삽입하기 때문
---------------------------------------------------------------------------------
class Animal{
public Animal(String name){}; // 사용자가 생성자를 하나라도 만들면
}
Animal cat = new Animal(); // 오류 발생
Animal cat = new Animal("김애용"); // 오류 발생 X, 만든 생성자에 맞춰 매개 변수를 넣어주어야 함
📗 this 레퍼런스
this는 객체 자신에 대한 레퍼런스이다.
✅ this의 필요성
- 객체의 멤버 변소와 메소드 변수의 이름이 같은 경우 사용
- 다른 메소드 호출 시 객체 자신의 레퍼런스를 전달할 때 사용
- 메소드가 객체 자신의 레퍼런스를 반환할 때 사용
class Car{
private String name;
private int price;
public Car(String name, int price){ // 매개변수와 멤버 변수의 이름이 같음
this.name = name; // this를 사용
this.price = price;
}
}
📗 this()
클래스 내의 다른 생성자를 호출할 때 사용한다.
생성자 내에서만 사용이 간으하다.
반드시 생성자 코드의 제일 처음에 수행한다.
class Car{
String name;
int price;
public Car(){
this("","");
System.out.println("생성자 호출");
}
public Car(String name){
this(name, "3333");
}
public Car(String name, int price){
this.name = name;
this.price = price;
}
}
Car porshe = new Car("포르쉐", 100000); // 포르쉐, 100000
Car audi = new Car("아우디"); // 아우디, 3333
728x90
반응형
'Java' 카테고리의 다른 글
자바 : static, final (0) | 2024.02.12 |
---|---|
자바 : 객체 배열과 메소드 (0) | 2024.02.09 |
자바 : 클래스와 객체 (0) | 2024.02.06 |
자바 : 배열과 예외 처리 (0) | 2024.02.05 |
자바 : 자바의 데이터 타입 (0) | 2024.02.05 |