추상화란 어떤 것들의 공통적인 성격을 뽑아내어 이를 따로 분리해내는 작업이다.자바가 추상화를 위해 제공하는 가장유용한 도구는 인터페이스이다. 인터페이스는 자신을 구현한 클래스에 대한구체적인 정보는 모두 감춰버린다. 인터페이스는 어떤 일을 하겠다는 기능만 정의해놓은 것이다.이말은 인터페이스는 "어떤 기능을 하겠다." 하는 구현체가 없다구현은 인터페이스를 구현할 클래스들 안에서 해야한다. 아래처럼 인터페이스를 정의하자.DB커넥션을 가져오는 메소드 이름을 makeConnection()이라고 정했다. 위 인터페이스를 사용하는UserDao 는 ConnectionMaker 인터페이스 타입의오브젝트라면 어떤 클래스로 만들어졌든지makeConnection() 메소드를 호출하면 Connection타입의오브젝트를 만들어서..
클래스는 보통 일반 클래스와 추상 클래스로 나뉜다.추상 클래스는 클래스 안에 추상 메소드가 하나 이상 포함되거나abstract로 정의된 경우이다. 인터페이스는 모든 메소드가추상 메소드인 경우이다. 추상 클래스와 인터페이스의 차이는명확하다. 구조, 사용법 등이 다르다. 하지만 하는 일은 비슷하다. "추상 클래스와 인터페이스는 상속받는 클래스 또는 구현하는 인터페이스 안에있는 추상 메소드를 구현하도록 강제한다." 라고 하는데 한번 읽어 본다면 "추상 메소드를 구현하는것" 이라고만생각될 수 있다. 그럼, 추상 클래스 하나만 존재를 해야하고추상 클래스 안에 추상 메소드를 여러개를 만들거나 전부 추상 메소드로만 두면될 것인데 왜 인터페이스가 존재하는 것일까? 이것은 인터페이스와 추상 클래스의 존재 목적이 다르기 ..
Collection 인터페이스를 구현하는제네릭 클래스들은 모두 인스턴스를 저장의대상으로 삼는다(정확히는 인스턴스의 참조 값)다만 저장하는 방식에 있어서 중복 저장을 허용하느냐 마느냐또는 저장 시 정렬을 하느냐 마느냐 등의 차이가 있을 뿐이다. List인터페이스를 구현하는 제네릭 클래스들은 다음 두 가지특성을 공통으로 지닌다.-동일한 인스턴스의 중복 저장을 허용-인스턴스의 저장 순서가 유지 List 인터페이스를 구현하는 대표적인 제네릭클래스는 ArrayList와 LinkedList이다이 둘의 사용방법은 거의 동일하다.다만 데이터를 저장하는 방식에서큰 차이를 보이는데 먼저 ArrayList의 사용법을 보자 123456789101112131415161718192021222324252627282930packag..
프레임워크(Framework)라는 단어는 여러 분야에서 약간씩 상이한 개념으로 사용된다때문에 이 단어에 대한 정확한 의미 파악이 쉽지 않을 수 있다. 하지만 기본적으로 다음의 의미를공통적으로 내포한다 "잘 정의된, 약속된 구조나 골격""잘, 정의된 약속된 구조의 클래스들" 쉽게 말해, 여러 개발자들에 의해 사용되도록잘 정의된 클래스들의 모임이라 할 수 있다.그런데 이것이 전부라면 라이브러리에지나지 않는다. 하지만 컬렉션과 관련해서는컬렉션 라이브러리 라고 하지않고컬렉션 프레임워크 라고 한다이는 컬렉션과 관련된 클래스들의 정의에적용되는 설계의 원칙, 또는 구조가 존재하기 때문이다 컴퓨터 공학에는 '자료구조' 라는 학문과 '알고리즘'이라는 학문이 있다 여기서 자료구조는 데이터의저장과 관련이 있는 학문으로서, ..
이번엔 Map인터페이스를 구현하는 방법에 대해 알아 보겠습니다 Map은 굉장히 많이 쓰이는 인터페이스입니다그중 HashMap이 많이 쓰입니다.HashMap은 Map 인터페이스의한 종류로 Key와 Value 값으로 데이터를 저장하는형태를 가집니다. Map 이란 Key와 Value를 하나의 쌍으로 묶어서저장하는 컬렉션 클래스들을 구현하는데 사용됩니다 Map의 종류에는 Hashtable, HashMap, LinkedHashMap,SortedMap, TreeMap 등이 있습니다. 먼저 HashMap 사용을 위해 간단하게 테스트해보겠습니다. HashMap 사용을 위해선 먼저 선언을 해줘야합니다 HashMap hash = new HashMap();를 사용해 선언을 합니다.다음 HashMap에 데이터를 넣어줄땐 Ma..