2022. 3. 29. 03:01ㆍTIL(Today I learned)
🏴Facts(한 것)
- 백준 알고리즘 풀기
- 코어 자바9 읽기
- 네트워크 과제 하기
- 오전 운동
🏴Findings(배운 것)
<가장 빨리 만나는 코어 자바 9> 를 읽는데, 생성자 오버로딩 개념이 나왔다.
갑자기 Spring에서 사용하는 @Override는 어떨 때 쓰는건지 자세히 알아보고 싶어서 공식문서를 찾아봤다. (둘은 아무 관련 없다.)
스프링 공식문서에 나오는 Method Override는 아래와 같이 정의되어 있다.
public class Helloworld {
public void printHello() {
System.out.println("Hello world!");
}
}
그리고 이 클래스에 있는 printHello라는 메서드를 오버로딩한다고 하자.
public class Main extends Helloworld {
@Overide
public void pringHelloWorld() {
System.out.println("Not Hello");
}
}
이렇게 Main 클래스에서 Helloworld 클래스를 상속받아 메서드를 재정의했다.
그런데 이렇게 재정의를 시도하면 컴파일러가 에러를 발생시킨다. 왜 그럴까?
바로 메서드 이름이 다르기 때문이다.
Helloworld 클래스에 있는 method는 printHello 인데, Main 클래스에 있는 메서드는 printHelloWorld이다.
이렇게 잘못된, 즉 상속하는 클래스에 없는 메서드를 만드려고 시도를 하면 컴파일러가 에러를 발생시켜 잘못됨을 알려준다.
결론적으로 사람의 실수를 막아주는 효과가 있다고 할 수 있다.
Override에 대해 추가적으로 알고 싶다면 https://docs.oracle.com/javase/specs/jls/se11/html/jls-9.html#jls-9.6.4.4
🏴Feeling(느낀 점)
오전 운동을 호기롭게 시전했고, 갔다와서 공부도 열심히 했지만
잠을 많이 못 잔 탓에 피곤함을 이기지 못하고 1시간 넘게 잤다. (오히려 좋아)
덕분에 저녁 늦게까지 과제하고 공부를 더 할 수 있었다.
🏴Affirmation(자기선언)
- 매일 알고리즘 문제 1문제 이상 풀기 => 성공
- 수업 공부한 것은 일주일 내에 포스팅하기 => 내일 OSI 7계층 중 어플리케이션 계층에 대한 자세한 포스팅
- 자바 8버전에 익숙해지기 => 성공
🏴여담
'TIL(Today I learned)' 카테고리의 다른 글
(TIL) 20220331 (0) | 2022.04.01 |
---|---|
(TIL) 20220329, Persistent/ Non-Persistant HTTP (0) | 2022.03.30 |
(TIL) 20220326, 라인 코테 후기, agile process (0) | 2022.03.27 |
(TIL) 20220325 (0) | 2022.03.27 |
(TIL) 20220324 (0) | 2022.03.25 |