[JAVA] 생성자(Constructor)

@욕심쟁이

·

2020. 8. 21. 15:42

반응형

생성자(Constructor)

- 모든 클래스는 생성자가 반드시 존재

- 객체를 생성할 때 new 연산자 뒤에 붙어서 호출되며, 객체초기화를 담당하는 메서드의 일종

- 객체생성시 호출 가능 임의로 호출 불가능

 - 메서드와 다른점

1) 생성자의 이름을 반드시 클래스명과 동일해야 한다!

2) 리턴 타입을 기술하지 않는다.(리턴 타입이 없다.)

- 클래스 정의 시 생성자를 하나도 정의하지 않을 경우

  : 컴파일러에 의해 기본 생성자 (Default Constructor)가 자동으로 생성됨(public 클래스명(){})

→ 매개변수가 없고, 중괄호 블록 내에 코드가 없는 빈 생성자

- 클래스에 명시적으로 선언한 생성자가 1개라도 있으면 컴파일러는 기본 생성자를 추가하지 않음

 문제점 : 파라미터가 없는 기본생성자를 호출하면 오류 발생!

→ 기본 생성자를 명시적으로 정의하거나, 파라미터 생성자의 매개변수와 일치하는 인자를 전달하도록 해야 함

- 매개변수와 일치하는 인자를 전달하도록 해야 함

<생성자 정의 기본 문법>

[접근제한자] 클래스명([매개변수...]){
	//생성자 호출(객체 생성)시 수행할 코드들....
}

<기본 생성자 형태>

public 클래스명(){}

- 클래스가 public class로 선언되면 기본 생성자에서도 public이 붙지만,

  클래스가 public 없이 class로만 선언되면 기본 생성자에도 public이 붙지 않음

public class a{
	public a(){}
}

class b{
	b(){}
}

 

반응형