본문 바로가기

전체 글

(202)
[자바의 정석] ch12. Generics / enums / annotation 1. 지네릭스(Generics) 더보기 - 컴파일 시, 타입체크를 해주는 기능 => 타입안전성 상승 - 의도하지 않은 객체 저장 예방 - 잘못된 형변환 오류 예방 - 클래스와 메서드에 선언 가능 >>지네릭 클래스의 선언 :클래스를 작성할 때 Object 대신 T같은 타입변수를 사용 >>지네릭스 용어 => Box과 Box는 같은 클래스이다. => Box에 서로 다른 타입을 대입하여 호출한 것일 뿐 >>지네릭스 제한 - static 멤버에 T사용 불가 : 모든 객체에 대해 동일해야 하는데 변수가 다르기 때문 - 지네릭 타입의 배열 x => new T[10] ==> new 연산자는 컴파일 시점에 타입 T가 무엇인지 알아야 하는데 T가 어떤 타입이 될지 알수 없음 >>지네릭 클래스의 객체 생성과 사용 1) 참조..
[객체지향의 사실과 오해] ch3. 타입과 추상화 >>추상화 >> 추상화를 통한 복잡성 극복 추상화 : 현실에서 출발하되 불필요한 부분을 도려내가면서 사물의 놀라운 본질을 드러내는 과정 - 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법 - 추상화의 수준, 이익, 가치는 목적에 의존적 >> 방법 2가지 1) 일반화 : 공통점을 취하고 차이점을 버림 2) 불필요한 세부사항을 제거 >>개념 : 객체를 분류하는 기준 - 공통점을 기반으로 객체들을 묶기 위한 그릇 => 개념을 기반으로 그룹으로 분류 => 개념 그룹 ∋ 개체 : 개체를 개념의 인스턴스라고 함 >> 개념의 3가지 관점 : 심볼 / 내연 / 외연 - 심볼 : 개념을 가리키는 간략한 이름이나 명칭 ex) 트럼프 - 내연 : 개념의 완전한 정의 / 내연의 의미를 이용해 객체가..
[자바의 정석] ch11-3.컬렉션 프레임워크 : HashMap/TreeMap / Collections 1. HashMap 더보기 - Map 인터페이스를 구현 - key와 value를 하나로 묶어서 하나의 데이터(entry)로 저장 - 순서를 유지하려면 LinkedHashMap클래스를 사용 => Entry라는 내부 클래스를 정의하고, Entry 타입의 배열을 선언하고 있음 비 객체지향적 객체지향적 코드 Object [] key; Object [] value; Entry [] table; class Entry{ Object key; Object value; } => (key, value) 를 (Object, Object)형태로 저장 >>메서드 - entry값 : entrySet => Set - key 값 : keySet => Set - value값 : values() =>Collection 반환 ex1) 같..
[객체지향의 사실과 오해] ch2. 이상한 나라의 객체 / 상태 -행동 -식별자 목차 1. 객체, 그리고 이상한 나라 2. 객체 : 상태+ 행동+식별자 3. 행동 초점의 객체 설계 : 행동이 상태를 결정한다 4. 소프트웨어는 현실의 모방이 아니다 : 의인화+은유 1. 객체, 그리고 이상한 나라 >> 앨리스 객체 - 앨리스의 상태(키)를 결정하는 것은 행동임 - 행동의 결과로 상태가 영향을 받음 - 행동의 성공여부(문을 열고 들어감)는 이전에 어떤 행동들이 발생했는지(음료, 케잌 등등)에 영향을 받음 요약 1) 앨리스는 상태를 가지며 상태는 변경가능하다 - 키/ 위치 등은 변경가능함 2) 앨리스의 상태를 변경시키는 것은 앨리스의 행동이다. - 행동의 결과는 상태에 의존하며 상태를 통해 서술가능하다 - 행동의 순서가 결과에 영향을 미친다. 3) 앨리스는 어떤 상태에 있더라도 유일하게 식..
[자바의 정석] 11-2.컬렉션 프레임워크 : iterator / Arrays / Comparator / Set 1.5 Iterator 더보기 - 컬렉션에 저장된 요소 접근에 사용 - iterator() : iterator 반환 메소드 - 컬렉션에 정의=> 자손인 List/Set에도 호출 가능 - List : 순서가 저장됨 - Set : 순서가 저장x - Map은 직접호출 불가 => EntrySet이나 keySet로 collection 얻어온 후, 호출 가능 >>메서드 ex) package ch11; import java.util.*; public class IteratorEx1 { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add("1"); list.add("2"); list.add("3"); list.add("4..
[객체지향의 사실과 오해] ch1. 협력하는 객체들의 공동체/ 협력-역할-책임 목차 1. 서론 2. 기존의 객체지향 묘사 3. 객체의 3요소 : 협력, 역할, 책임 4. 협력 속에 사는 객체 5. 객체지향의 본질(핵심) 1. 서론 객체지향이란 무엇인가? => 이 질문에 대한 자신만의 견해를 가지는 것이 중요하다 => 그러나, 많은 개발자는 객체지향을 여전히 클래스나 상속을 중심으로 바라본다. 다음 책에서는 총 3가지 관점의 변화를 유도한다. 첫째, 클래스 중심 => 객체 중심 관점 둘째, 객체를 독립적 존재 => 협력적 존재로 바라보는 것 셋째, 객체에게 얼마나 적절한 역할과 책임을 부여하는가 => 궁극적으로 이 3가지 관점으로 프로그래밍 언어라는 틀에 어떻게 담아내는지가 중요하다 2. 기존의 객체지향 묘사 - 객체지향은 현실세계 사물의 추상화로 묘사되는 경우가 많다. - 그러나,..
[자바의 정석] ch11-1 : 컬렉션프레임워크 -- List / Stack-Queue 1. 컬렉션 프레임워크 더보기 : 데이터 군을 저장하는 클래스들을 표준화한 설계 >>컬렉션 프레임웤의 3가지 인터페이스 => Collection : List와 Set의 공통된 부분을 뽑아 정의한 인터페이스 >> Collection 인터페이스의 메서드 >>List 인터페이스 : 순서 존재 + 중복허용 -- 메서드 >>Set인터페이스 : 순서x + 중복 x >>Map 인터페이스 -- 키와 값을 하나의 쌍으로 묶어서 저장 - 키는 중복이 불가/ 값은 중복이 가능 - 순서가 존재x ㅡMap.Entry 인터페이스 : Map 인터페이스의 내부 인터페이스 : key-value 쌍을 다루기 위한 인터페이스 메서드 설명 boolean equals(Object o) 동일한 Entry인지 확인 Object getKey() ..
[자바의 정석] ch9-1. java.lang 패키지와 유용한 클래스 1. Object 클래스 더보기 - object 클래스는 모든 클래스의 최고조상 == object 클래스의 멤버들은 모든 클래스에서 바로 사용 가능 Object 클래스의 메서드 설명 protected Object clone() 객체 자신의 복사본을 반환 public boolean equals(Object obj) 객체 자신과 객체obj가 같은 객체인지 알려줌 (참조변수의 주소값을 비교) protected void finalize() 객체가 소멸될 때 가비지 컬렉터에 의해 자동 호출 public Class getClass() 객체 자신의 클래스 정보를 담고 있는 Class 인스턴스를 호출 public int hashCode() 객체 자신의 해시코드를 반환 public String toString() 객체 ..