IT 정보/Java
[Java] 생성자(Constructor) 란?
개발하는 동그리
2022. 5. 10. 18:23
반응형
생성자란?
인스턴스가 생성될 때 호출되는 것이 인스턴스 초기화 메서드다.
- 인스턴스 생성을 담당하는 것 : new 키워드 생성자가 인스턴스를 만드는 것이 아니다.
- 생성자는 인스턴스의 변수를 초기화 하는데 사용되는 특수한 메서드다.
- 매개변수는 있을 수도 있고 없을 수도 있다.
- 생성자를 생략하면 컴파일러가 자동으로 기본생성자(Defalut Constructor)를 생성해준다.
- 생성자를 생성했을 때 기본생성자는 자동으로 만들어 지지 않는다. 따라서 필요하다면 따로 생성해야한다.
- 생성자를 사용하면 많은 인스턴스를 생성할 때 훨씬 편하게 코딩이 가능하다
<생성자 미 사용>
public class Main {
public static void main(String[] args) {
dog dog1 = new dog();
dog1.name = "푸들";
dog1.age = 2;
dog dog2 = new dog();
dog2.name = "초코";
dog2.age = 4;
dog dog3 = new dog();
dog3.name = "딸기";
dog3.age = 1;
// dog dog1 = new dog("푸들",2 );
// dog dog2 = new dog("초코",4 );
// dog dog3 = new dog("딸기",1 );
System.out.println("강아지의 이름은" + dog1.name + "이고, 나이는 " + dog1.age + " 살 입니다.");
System.out.println("강아지의 이름은" + dog2.name + "이고, 나이는 " + dog2.age + " 살 입니다.");
System.out.println("강아지의 이름은" + dog3.name + "이고, 나이는 " + dog3.age + " 살 입니다.");
}
}
class dog {
String name;
int age;
// dog(String name, int age) {
// this.name = name;
// this.age = age;
}
}
<생성자 사용시>
public class Main {
public static void main(String[] args) {
// dog dog1 = new dog();
// dog1.name = "푸들";
// dog1.age = 2;
//
// dog dog2 = new dog();
// dog2.name = "초코";
// dog2.age = 4;
//
// dog dog3 = new dog();
// dog3.name = "딸기";
// dog3.age = 1;
dog dog1 = new dog("푸들",2 );
dog dog2 = new dog("초코",4 );
dog dog3 = new dog("딸기",1 );
System.out.println("강아지의 이름은" + dog1.name + "이고, 나이는 " + dog1.age + " 살 입니다.");
System.out.println("강아지의 이름은" + dog2.name + "이고, 나이는 " + dog2.age + " 살 입니다.");
System.out.println("강아지의 이름은" + dog3.name + "이고, 나이는 " + dog3.age + " 살 입니다.");
}
}
class dog {
String name;
int age;
dog(String name, int age) {
this.name = name;
this.age = age;
}
}
생성자와 메서드
- 공통점
- 비슷한 구조를 가진다.
- 오버로딩이 가능하다.
- 차이점
- 생성자와 클래스의 이름이 반드시 같아야 한다. ( 그렇지 않으면 생성자로서 기능을 수행할 수 없다. )
- 생성자는 리턴타입이 존재하지 않기 때문에 void 키워드를 사용하지 않는다.
상속이 되지 않는다!?
기본 생성자
- new 키워드를 사용하여 생성자를 호출하고 객체를 만든다.
- 모든 클래스에는 생성자가 반드시 하나이상 존재 해야하고, 기본생성자란 매개변수가 없는 생성자를 말한다.
ex). 클래스명() {}
매개변수가 있는 생성자
매개변수가 있는 생성자는 메서드처럼 매개변수를 호출해서 해당값을 받아 인스턴스를 초기화 하는데 사용된다.
고유한 특성을 가진 인스턴스를 계속 만들어야 하는 경우 인스턴스마다 각기 다른 값을 가지고 초기화 할 수 있어서 매우 유용하다.
반응형