728x90
- 생성자란?
- 객체의 초기값 할당
- 생성자명은 클래스명하고 같다.
- 생성자는 클래스에서 1개 이상 존재한다.
- 클래스에 정의된 생성자가 없으면 JVM에서 기본 생성자를 제공한다.
- [기본생성자]
- 클래스의 접근제어자하고 같고 파라미터가 없는 구조이다.
- public HandPhone(){}
- 클래스에 정의된 생성자가 존재하면 JVM에서 기본 생성자를 제공해주지않는다.
- [기본생성자]
클래스에 생성자는 한개이상 있어야 한다?
생성자인 ‘클래스이름()’을 선언하면 바이트코드에 기본적으로 생성자가 만들어짐.(우리눈에는 안보임)
그러나 클래스에 생성자가 하나라도 정의되어있으면 기본 생성자 제공 안함.
왼쪽 메인파일에서 생성자에 에러가 뜸.
오른쪽에 클래스 파일에 보이다시피 기본생성자이외에 따로 생성자를 정의할 경우 기본생성자가 없어지므로 기본 생성자를 꼭 따로 정의해주어야한다. 그러면 에러가 안뜨는 게 보임.
즉, 생성자를 따로 정의해서 쓸거면 기본생성자도 꼭 써줘야함.
정의된 생성자와 기본생성자를 모두 주석처리하니 에러가 없어짐.
생성자를 정의한 것을 없애니 기본생성자가 자동으로 생성이 되어서 정상적으로 작동함.
기본으로 생성되는 생성자는 JVM에 있음. 눈에보이지않음.
생성자 안에서 생성자 호출하기
728x90
'study > JAVA' 카테고리의 다른 글
자바 상속 inheritance 기초 (0) | 2022.04.04 |
---|---|
이것이 자바다 6장 확인문제 20번 (0) | 2022.04.03 |
자바 JAVA 클래스가 메모리에 저장되는 방식 (0) | 2022.04.01 |
자바 Java 값복사와 주소복사란? (0) | 2022.03.31 |
자바 메소드 정리 Java method (0) | 2022.03.31 |
댓글