이펙티브 자바를 보면, 다중 정의를 사용할 때에는 신중하게 하라고 되어 있습니다. 이펙티브 자바 3판의 아이템 52를 잘 읽어보면, 어떨 때 overloading을 신중하게 써야 하는지를 알려주는데요. 그 중 하나의 예로, ArrayList의 remove를 들고 있습니다. 이에 대한 글은, 하도 질문이 들어와서 예전에 레퍼런스 분석에도 상세히 썼던 기억이 납니다. 그나마 이건 단순한 편이지, 상황이 조금이라도 더 복잡해 지면. 왜 그 책에서, remove를 짚어서 이야기를 했을까 고민을 해 보겠습니다. 보시면, remove는 int를 받는 것이 있고, Object를 받는 것이 있습니다. 파라미터가 다릅니다. 물론, 리턴형도 다르지만, 리턴형만 다르다고 오버로딩이 되었다고 하지는 않습니다. 이 글에서도 언..
Overloading 검색 결과
해당 글 2건
overloading : 잘 쓰면 좋지만 잘못 쓰면 헷갈리기 쉽다.
디자인패턴
2021. 1. 15. 23:33
java 오버로딩 (overloading) : 같은 이름의 메서드를 여러 개 선언한다.
오버로딩과 오버라이딩의 차이는 JAVA 면접에서, 흔히 나올 수 있는 질문입니다. 이 중에 오늘은 오버로딩 (overloading)에 대해서 간단하게 알아보도록 하겠습니다. 여기에서 언급되지 않은 내용들은, 심화 편에서 이야기를 해 보도록 하겠습니다. 먼저, overload는, 클래스 내에서, 같은 메소드를 여러 개 선언하는 것을 의미합니다. 예를 들어, ArrayList 클래스를 봅시다. List에 넣을 item 하나를 받는 add 메서드가 있습니다. 그리고 특정한 위치와, List를 넣을 item을 받는 add 메서드가 있어요. 분명한 것은 이 두 메서드의 이름은 add로 같았다는 것입니다. 오버로딩을 언제 쓰면 좋을까요? 부터 생각해 봅시다. ArrayList의 맨 뒤에 item을 추가하는 기능. ..
코딩/Java
2020. 3. 23. 03:17
최근댓글