[Part 1][2주차]클래스/ 개체 모델링 1
Closed this issue · 2 comments
bohub12 commented
Contents
개체지향 프로그램 및 설계
클래스/ 개체 모델링 1
탐구 키워드
클래스
- 생성자
- 접근 제어자
- 캡슐화 / 추상화
- getter / setter
개체 모델링1
- 개체 모델링1 (본인이 직접 개체 모델링 해보기)
공통 주제
- 제네릭
- JCF(Java Collection Framework)
질문은 Comment를 통해서
ingyuseong commented
다들 새해 복 많이받으세요🔥🔥
질문 있습니당
- 반복자의 사용예제
특히, 특정원소를 삭제하며 순회는 경우가 헷갈리네요. 삭제한 순간에 반복자가 prev 혹은 next를 하면, 삭제한 원소의 한칸 앞, 한칸 뒤 원소를 참조하는 걸로 이해 했는데 맞나요? 또, iterator를 생성했을때 반복자가 가리키는 위치가 정확히 어떻게 되는지 궁금합니다. 첫 번째 원소 앞(next를 했을때 첫 번째 원소를 가리키는 위치) 같은데 책에서는 첫 번째 인스턴스를 가리킨다네요ㅠ - 다음 두 가지 메소드를 비교해주세요. 공통점 / 차이점
public static <T> void peekBox(Box<? extends T> box)
public static <T, W> void peekBox(Box<W extends T> box)
bohub12 commented
2 확실치 않지만 찾아보고 내가 이해한 선에서 말해보겠다.
- 공통점: 메서드의 공통점이라 함은 메서드가 받아들일 매개변수의 타입 변수가 시사하는 점이 같다고 볼 수 있다. <? extends T> 와 는 타입 파라미터를 T나 T에게 상속받는 클래스만 받겠다는 뜻이다.
- 차이점: 첫번째 메서드의 경우에는 와일드카드
?
를 씀으로써 T에게 상속받는 actual type에 대해 상관하지 않고, 그저T
를 상속받는다는 것에만 의의가 있다. 즉,T
를 코드 어디에서도 사용할 필요가 없는 경우 유형 이름T
를 전혀 언급하지 않는다고 의도를 더 명확하게 한다는 것이다. 두 번째 메서드에서는W extends T
를 씀으로써T
에게 상속받는W
를 타입 파라미터로 받으며 코드 어딘가에서 쓸 계획이 있다고 의도를 밝히는 점이 차이가 있다.
와일드카드 타입과 바운디드 타입의 차이점은 아래와 같은 사이트에서 더 알아볼 수 있다.
http://www.angelikalanger.com/GenericsFAQ/FAQSections/TypeArguments.html#FAQ203
https://stackoverflow.com/questions/39240644/bounded-type-parameters