[JAVA]/07. 객체지향

12. 생성자 (Constructor)

76beny 2022. 4. 7. 17:16

목차

- 생성자

- 생성자의 규칙

-기본생성자

- 매개변수 생성자

- 생성자 예시

- 생성자 오버로딩 예시

 


생성자 (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차 변형 등을 할 경우

민, 형사상 법적 조치 등 저작권법에 의거하여 처벌 받을 수 있습니다."