12. 생성자 (Constructor)
목차
- 생성자
- 생성자의 규칙
-기본생성자
- 매개변수 생성자
- 생성자 예시
- 생성자 오버로딩 예시
생성자 (Constructor)
■ 객체가 생성되면 자동으로 호출되는 메소드
■ 클래스명과 이름이 같음
■ 일반적으로 객체가 제대로 동작 할 수 있게 초기화 (기본값 입력) 하는 용도로 많이 사용됨
■ 생성자 표현식
[접근제한자] [예약어] class 클래스명 {
[접근제한자] 클래스명() { }
[접근제한자] 클래스명(매개변수) { (this.)필드명 = 매개변수; }
}
생성자의 조건
-생성자의 이름은 클래스의 이름과 같아야 한다.-생성자는 리턴값이 없다(void안붙임)-모든 클래스는 반드시 1개의 생성자가 있어야 함
기본 생성자
-매개변수가 없으며 직접 작성해주는것이 원칙임
-작성하지 않은 경우, 클래스 사용 시 JVM이 자동으로 기본 생성자 생성(비추)
클래스이름(){}
//생성자가 단한개도 없을 경우 컴파일러가 자동으로 추가
매개변수 생성자
■ 객체 생성 시 전달받은 값으로 객체를 초기화 하기 위해 사용
■ 매개변수 생성자 작성 시 JVM이 기본 생성자를 자동으로 생성해주지 않음
■ 상속에서 사용 시 반드시 기본 생성자를 작성
■ 오버로딩을 이용하여 작성
■ 위아래 두가지 코드는 같은것( 두번째 코드 추천! 훨씩 직관적!)
Car c = new Car();
c.color = "white";
c.gearType = "auto";
c.door = 4;
Car c = new Car("white", "auto",4);
생성자 예시
[생성자 예시1 - ConstructorExam.java]
public class ConstructorExam {
public String name;
public int age;
public ConstructorExam(){
System.out.println("생성자1 호출");
}
}
[생성자 예시2 - ConstructorExam.java]
public class ConstructorExam {
public String name;
public int age;
public ConstructorExam(String name, int age) {
System.out.println("생성자2 호출");
}
}
[생성자 예시3 – Run.java]
ConstructorExam ce = new ConstructorExam(); // 예시 1
ConstructorExam ce = new ConstructorExam("홍길동",20);// 예시2
생성자 오버로딩 예시
[생성자 오버로딩 예시 – ConstructorExam.java]
public class ConstructorExam {
public String name;
public int age;
public ConstructorExam(){
System.out.println("생성자1 호출");
}
public ConstructorExam(String name, int age) {
System.out.println("생성자2 호출");
}
}
[생성자 오버로딩 예시 – Run.java]
ConstructorExam ce1 = new ConstructorExam();
ConstructorExam ce2 = new ConstructorExam("홍길동",20);
"본 인터넷 사이트 내의 모든 이미지, 문구, 콘텐츠, 내용 등에 대한 저작권은 76beny에게 있습니다.
이를 무단으로 도용, 복사, 전재, 재배포, 2차 변형 등을 할 경우
민, 형사상 법적 조치 등 저작권법에 의거하여 처벌 받을 수 있습니다."