Search

1: 인터페이스

생성일
2021/09/03 14:09
작성자
해당 도서에는 일반적인 의미에서의 인터페이스와 자바에서의 인터페이스에 대한 혼동을 막기 위해 표기를 달리합니다. 일반적인 의미의 인터페이스 ⇒ 인터페이스 자바의 인터페이스 ⇒ Interface

1.1 리스트가 두 종류인 이유

자바의 Java Collection Framework(JCF)는 ArrayListLinkedList 클래스를 모두 제공함
왜 자바는 List 인터페이스에 두 가지 구현을 제공할까?
어떤 동작은 ArrayList가 빠르거나 저장 공간을 적게 사용하고, 다른 상황에서는 LinkedList가 빠르거나 메모리 사용이 적음

1.2 자바 interface

자바 interface의 기본적인 개념을 설명하는 장이므로 간략히 작성하였음
자바 interface는 메서드 집합을 의미함
예를 들어, java.lang 패키지에 정의된 Comparable interface의 소스 코드는 아래와 같음
Comparable interface를 구현하고 있는 java.lang.Integer 클래스의 소스 코드는 아래와 같음

1.3 List interface

Java Collection Framework(JCF)List라는 interface를 정의하고 ArrayListLinkedList라는 두 구현 클래스를 제공함
interfaceList가 된다는 의미가 무엇인지 정의함
ArrayListLinkedList 클래스는 List에서 정의한 메서드 집합을 제공하므로 상호교환(= 서로 대체)될 수 있음
List로 동작하는 메서드는 ArrayList, LinkedList 또는 List를 구현하는 어떤 객체와도 잘 동작함
위 예제와 같이 라이브러리를 사용할 때 코드는 오직 List와 같은 인터페이스만 의존하고 ArrayList 클래스와 같은 특정 구현에 의존해서는 안됌
이러한 방식으로 하면 나중에 구현이 변경되어도 인터페이스를 사용하는 코드는 그대로 사용할 수 있음

1.4 실습 1

실습 목표: LinkedListArrayList 클래스로 교체하고, ListClientExampleTest 코드를 통과시키세요.
ListClientExample.java
ListClientExample.java