Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Python
- LeetCode
- Jackson
- 스터디
- 성적프로그램
- 책리뷰
- hackerrank
- 2020년 제4회 정보처리기사 필기 문제 분석
- algorithms
- 주간회고
- 코드숨
- 미니프로젝트
- Real MySQL
- 정보처리기사
- 회고
- 뇌정리
- 서평
- jsp
- 2020년 일정
- sqldeveloper
- java
- 2020년 정보처리기사 4회
- If
- Til
- git
- 함수형 코딩
- post
- 필기
- 항해99
- 알고리즘
Archives
- Today
- Total
조컴퓨터
기본 생성자를 선언하는 이유 본문
갑자기 궁금해져서 공부한다.
// Member.java
public class Member {
private String username;
private int age;
// Overloading
// Constructor1
public Member() {
}
// Constructor2
public Member(String username, int age) {
this.username = username;
this.age = age;
}
}
파라미터가 있는 생성자를 만들었는데, 왜 매개변수(파라미터)가 없는 기본 생성자를 선언할까?
1) 상속받아야 할 때
해당 클래스를 상속받는 경우 에러가 발생한다. 오류 메세지는 Implicit super constructor Parent() is undefined for default constructor. Must define an explicit constructor 이며 Parent 클래스에 기본 생성자가 없는데 Child 클래스에서 기본 생성자를 이용해서 클래스를 생성하려고 하기 때문에 발생한다.
2) 매개변수 있는 생성자를 추가할 때
클래스를 처음 만들 때는 보통 생성자를 만들지 않는다. 생성자가 없을 때는 자바 컴파일러가 기본 생성자를 만들어 준다. 단, 매개변수가 있는 생성자를 만들었다면 상황이 달라진다. 이때는 자바 컴파일러가 기본 생성자를 만들지 않는다. 그러므로 매개변수가 있는 생성자를 만들 때는 기본 생성자를 생성하고 사용해야 한다.
참조)
1. 간단정리, 자바에서 기본 생성자의 의미 (feat. Java Reflection, Jackson, JPA) (velog.io)
2. Default Constructor in Java – Class Constructor Example (freecodecamp.org)
3. JAVA 기본 생성자가 없는 클래스를 상속받을 때 규칙 (devez.net)
4. 자바 생성자와 초기화 이야기 (tistory.com)
'공부 > Spring' 카테고리의 다른 글
#MVC 프레임워크 만들기 - v1, v2, v3, v4 (0) | 2022.01.27 |
---|---|
MVC 패턴 (0) | 2022.01.26 |
HTTP 응답 데이터 (0) | 2022.01.25 |
HTTP 요청 데이터 (0) | 2022.01.25 |
쓰레드 풀 (0) | 2022.01.24 |