생성자 글에서도 적었지만, 부모 클래스가 기본 생성자를 가지고 있지 않으면 자녀 클래스의 생성자는 반드시 부모의 매개변수가 있는 생성자를 첫 줄에 호출해야 하며, 그렇지 않을 경우 컴파일 오류가 발생한다. 사실 부모가 기본 생성자를 가지고 있는 경우에도 자녀 클래스 생성자에서 호출해주어야 하는 건 같지만 이 경우에는 컴파일러가 알아서 추가해주기 때문에 명시적으로 할 필요가 없을 뿐이다. 왜 이런 귀찮은 작업을 수행해야 하는 걸까? 정답부터 말하자면 상속을 위해선 부모 클래스가 자녀 클래스보다 먼저 존재해야 하기 때문이다. 상속받은 클래스 멤버는 기본적으롤 부모 클래스에 속한 것이므로 부모가 먼저 존재하지 않으면 자녀 클래스에서 호출해 사용하는 것이 불가능하다. 따라서 반드시 자녀 클래스보다 부모 클래스가..
자바에서 생성자는 클래스의 네 가지 구성요소(필드, 메서드, 생성자, 내부 클래스)중 하나이며 메서드와 비슷한 코드 블럭, 혹은 특별한 메서드이다. 위 문장은 메서드를 어떻게 정의하느냐에 따라 달라지는 미묘한 의미를 가졌지만, 어쨌거나 중요한 것은 생성자 역시 메서드, 혹은 그에 준하는 코드 블럭이라는 것이다. 생성자는 매개변수의 유무에 따라 기본 생성자(Default or no-arg Constructor) - 매개변수가 없는 생성자 매개변수가 있는 생성자(Parameterized Constructor) 로 나뉘며 일반적인 메서드와는 다른 생성자만의 특징은 아래와 같은 것들이 있다. 클래스의 멤버(Member)가 아니므로 상속 및 오버 라이딩의 대상이 되지 않는다. 생성자의 이름은 반드시 클래스의 이름..
예전 글에서 this() 메서드와 this 키워드에 관해서 살펴봤다. https://gnidinger-coding.tistory.com/11 [Java]this() vs. this this() this() 메서드는 클래스 안에서 생성자를 상호 호출할 때 사용한다. 조금 더 풀어서 쓰자면, 생성자 안에서 다른 생성자를 호출할 때 사용되는 것이 this() 메서드이다. this() 메서드를 사용하 gnidinger-coding.tistory.com 요약하면 this는 자신의 객체, this()는 자신의 생성자를 호출하는 데 사용되었다. super와 super()도 이와 비슷하게 사용된다. 다만 차이점은 super는 상위 클래스의 객체, super()는 상위 클래스의 생성자를 호출하는 데 사용된다는 점이다. ..
- Total
- Today
- Yesterday
- 세계일주
- spring
- 남미
- 야경
- 파이썬
- 스프링
- 리스트
- Backjoon
- 스트림
- 유럽여행
- 여행
- BOJ
- a6000
- 알고리즘
- 자바
- Python
- 맛집
- 세계여행
- 면접 준비
- 백준
- 세모
- 동적계획법
- 칼이사
- 기술면접
- 유럽
- 지지
- RX100M5
- 중남미
- Algorithm
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |