본문 바로가기

Java/Theory

Chapter 8. Useful Classes II

Chapter 8. Useful Classes II

1. Fomatting Class

 - 숫자, 날짜, Text Data를 일정한 형식에 맞게 표현할 수 있는 방법을 객체지향적으로 설계하여 표준화한 Class

 - 특징

  · java.text Package에 포함되어 있다.

  · 형식화하는 방법을 표준화하는 것에 중점을 두어 작성되었기 때문에 기능을 유연하게 확장할 수 있도록 설계되어 있어 용도에 맞춰 다양하게 적용될 수 있다.

  · 원하는 형식으로 표현 또는 변환하기 위해 Pattern을 정의한다.

 - DecimalFormat

  · 숫자를 형식화 하는데 사용되는 자식 Class

  · 사용되는 Pattern

Pattern

Explain

 0

 10진수(값이 없을 때는 0)

 #

 10진수

 .

 소수점

 -

 음수부호

 ,

 단위 구분자

 E

 지수기호

 ; Pattern 구분자
 % Percent
 \u2030 Permil(Percent × 10)

 \u00A4

 통화

 ' Escape 문자

 - SimpleDateFormat

  · 날짜를 Date나 Calendar를 사용해 연산한 후 출력할 때 사용하는 Class

  · 사용되는 Pattern

Pattern

Explain

 G

 연대(BC, AD)

 y

 년도

 M

 월(1~12 또는 1월~12월)

 w

 년의 몇 번째 주(1~53)

 W

 월의 몇 번째 주(1~5)

 D

 년의 몇 번째 일(1~366)

 d

 월의 몇 번째 일(1~31)

 F

 월의 몇 번째 요일(1~5)

 E

 요일

 a

 오전/오후(AM/PM)

 H

 시간(0~23)

 k

 시간(1~24)

 K

 시간(0~11)

 h

 시간(1~12)

 m

 분(0~59)

 s

 초(0~59)

 S

 천분의 일초(0~999)

 z

 Time zone(General time zone)

 Z

 Time zone(RFC 822 time zone)

 '

 escape 문자(특수문자를 표현하는데 사용)

 - ChoiceFormat

  · 특정 번위에 속하는 값을 문자열로 반환해주는 Class

  · 연속적 또는 불연속적인 범위의 값들을 처리하는데 있어 조건문(if, switch)가 적절하지 못한 경우에 간단하고 직관적인 Code를 작성하기 위해 사용된다.

 - MessageFormat

  · Data를 정해진 양식에 맞게 출력할 수 있도록 해주는 Class

  · Data가 들어갈 자리를 마련해 놓은 양식을 미리 작성하고 Program을 이용해서 다수의 Data를 같은 양식으로 출력할 때 주로 사용된다.


2. Generics

 - 다양한 Type의 객체를 다루는 Method나 Collection Class에 Compile-time Type Check를 해주는 기능

 - 특징

  · Type 안정성을 제공

  · Type Check와 형변환을 생략할 수 있으므로 Code가 간결해 진다.

 - 문법

1
2
3
[Class Name]<T>
[Class Name]<E>
[Class Name]<K>
cs

  · Class 명 뒤에 Type의 T 또는 Element의 E 또는 Key의 K를 <>안에 넣어 붙여준다.

 - ArrayList<E>

ArrayList<저장할 객체의 Type> ArrList = new ArrayList<저장할 객체의 Type>();

  · ArrayList Class에 Element 참조형 Type으로 Generics 기능을 추가한 것

  · Example

1
2
3
ArrayList<Tv> tvList = new ArrayList<Tv>();
tvList.add(new Tv());
Tv t = tvList.get(0); //Tv t = (Tv)tvList.get(0);
cs

 - Iterator<E>

1
2
3
4
5
public interface Iterator<E> {
      boolean hasNext();
      E next();
      void remove();
}
cs

  · Iterator Class에 Element 참조형 Type으로 Generics 기능을 추가한 것

  · 적용 예

Generics 적용하지 않을 시

1
2
3
4
5
6
Iterator it = List.iterator();
 
while(it.hasNext()) {
      Student s = (Student)it.next();
      System.out.println(s.name);
}
cs


Generice 적용 시

1
2
3
4
5
6
7
Iterator<Student> it = list.iterator();
 
while(it.hasNext()) {
      Student s = it.next();
      System out.println(s.name);
}
 
cs

 - Comparable<T>

  · Comparable Class를 Type 참조형 Type으로 Generics 기능을 추가한 것

 - HashMap<K,V>

1
2
3
4
5
6
7
public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable {
      ......
      public V get(Object key) { ...... }
      public V put(K key, V value) { ...... }
      public V remove(Object key) { ...... }
      ......
}
cs

  · HashMap처럼 Dat를 Key와 Value의 형태로 저장하는 Collection Class는 지정해줘야 할 Type이 두 개이기 때문에 K, V 참조형 Type으로 Generics 기능을 추가한다.



'Java > Theory' 카테고리의 다른 글

Chapter 10. AWT & Applet  (0) 2015.09.05
Chapter 9. Thread  (0) 2015.08.22
Chapter 7. Useful Classes I  (0) 2015.08.19
Chapter 6. Collection Framework  (0) 2015.08.19
Chapter 5. Inner Class  (0) 2015.08.19