520 likes | 758 Views
Chap09 패키지와 주요 클래스. 9.1 패키지 개요와 패키지의 사용 9.2 java.lang 패키지의 개요 9.3 Object 클래스 9.4 포장 (Wrapper) 클래스 9.5 문자열의 개요 9.6 String 클래스 9.7 StringBuffer 클래스 9.8 유틸리티 패키지 개요 9.9 Random 클래스 9.10 Arrays 클래스. 9.1 패키지 개요와 패키지의 사용. 패키지 : 비슷한 종류의 클래스나 인터페이스들을 묶어 패키지화 한다 JDK 에서 많은 패키지 제공
E N D
Chap09 패키지와 주요 클래스 9.1 패키지 개요와 패키지의 사용 9.2 java.lang 패키지의 개요 9.3 Object 클래스 9.4 포장(Wrapper) 클래스 9.5 문자열의 개요 9.6 String 클래스 9.7 StringBuffer 클래스 9.8 유틸리티 패키지 개요 9.9 Random 클래스 9.10 Arrays 클래스
9.1 패키지 개요와 패키지의 사용 • 패키지 : 비슷한 종류의 클래스나 인터페이스들을 묶어 패키지화 한다 • JDK에서 많은 패키지 제공 • java.lang : 자바 프로그램의 기본적인 기능을 제공. 명시적으로 지정하지 않아도 모든 자바 프로그램에 포함되는 패키지 • java.util : 유용한 유틸리티 클래스를 제공 • java.io : 입출력 기능을 제공하는 패키지 • java.net : 네트워킹과 관련된 기능을 제공하는 패키지. telnet, ftp, http와 같은 프로토콜을 사용할 수 있는 클래스를 제공 • java.awt : 그래피컬 사용자 인터페이스(GUI)를 구축하기 위한 다양한 컴포넌트를 제공하는 패키지 • java.awt.event : AWT 컴포넌트들의 이벤트를 제어하는 패키지 • java.applet : 애플릿 프로그램과 연관된 클래스를 제공하는 패키지
9.1 패키지 개요와 패키지의 사용 • 패키지의 사용 • import 문을 사용하여 패키지 포함 import java.util.Date; ...... Date date = new Date(); // java.util.Date 클래스만을 사용 ...... import java.util.*; ....... Date date = new Date(); // java.util 패키지의 모든 클래스를 사용 Random random = new Random(); Stack stack = new Stack(); Hashtable hashtable = new Hashtable(); ........ ............
Boolean Character Class ClassLoader Compiler Byte Math Double Number Float Process Integer Object Runtime Long SecurityManager Short String(12장) StringBuffer(12장) System Thread(10장) ThreadGroup Throwable void java.lang 패키지 주요 클래스의 계층구조 9.2 java.lang 패키지의 개요 • 모든 자바 프로그램에 자동으로 포함되는 패키지
9.3 Object 클래스 • 모든 자바 프로그램의 최상위 클래스 • 모든 자바 프로그램에 상속된다. extends 예약어를 사용하여 명시적으로 지정하지 않아도 상속된다 • 모든 자바 프로그램에서 Object 클래스의 메소드를 자유롭게 사용
9.3 Object 클래스 • Object 클래스의 주요 메소드
9.4 포장(Wrapper) 클래스 • 자바에서는 실행의 효율성을 위해 기본자료형(8가지)을 값으로 직접 사용할 수 있다 • 또한 8가지의 기본 자료형을 객체로 사용할 수 있는 클래스를 제공 • 8개의 기본 자료형과 괄련된 클래스를 포장(wrapper) 클래스라 한다 • 기본 자료형을 객체로 사용하면 해당 클래스에서 제공되는 유용한 메소드들을 사용할 수 있다.(효율성은 값을 사용하는 방법보다 뒤진다) • 포장 클래스 • Boolean, Character, Byte, Short, Integer, Long, Float, Double • 포장 클래스로부터 생성된 기본 자료형 객체의 값은 한번 생성된 다음에는 변할 수 없다
9.4 포장(Wrapper) 클래스 • 포장 클래스를 사용하는 예 class ValueandWrapper { public static void main(String args[]) { int num1 = 20; // 정수 num1(값사용)을 생성 Integer num2 = new Integer(30); // Integer 포장 클래스를 이용하여 정수 객체 num2를 생성 // JDK 5.0 이후에는 Integer num2 = 30;의 형태로 사용 가능 int total = num1 + num2.intValue(); System.out.println("두수의 합은 : " + total); } }
9.4 포장(Wrapper) 클래스 9.4.1 Integer 클래스 • 정수값을 포장하는 클래스 • 생성자 Integer(int n) Integer(String str) • n : 정수형 값 • str : 문자열(문자열과 동등한 정수값을 생성)
9.4 포장(Wrapper) 클래스 • Integer 클래스의 주요 메소드
9.4 포장(Wrapper) 클래스 • Integer 클래스의 주요 메소드(계속)
9.4 포장(Wrapper) 클래스 • 예제 : IntegerExam1.java
9.4 포장(Wrapper) 클래스 9.4.2 Character 클래스 • 문자값을 포장하는 클래스 • 생성자 Character (char c) • c : char 형의 값 • Character 클래스의 메소드
9.4 포장(Wrapper) 클래스 • 예제 : CharacterExam1.java
9.4 포장(Wrapper) 클래스 9.4.3 Byte 클래스 • byte값을 포장하는 클래스 • 생성자 Byte(byte b) Byte(String s) throws NumberFormatException • b : byte형 값 • s : byte 형의 값과 같은 의미의 문자열. S가 byte 형의 문자열이 아닐 경우 NumberFormatException 예외 발생
9.4 포장(Wrapper) 클래스 • Byte 클래스의 주요 메소드
9.4 포장(Wrapper) 클래스 9.4.4 Short 클래스 • Short형의 값을 포장하는 클래스 • 생성자 Short(short s) Short(String str) throws NumberFormatException s : short형 값 str : short 형의 값과 같은 의미의 문자열
9.4 포장(Wrapper) 클래스 • Short 클래스의 주요 메소드
9.4 포장(Wrapper) 클래스 • 예제 : ShortExam.java
9.4 포장(Wrapper) 클래스 9.4.5 Long 클래스 • long 값을 포장하는 클래스 • 생성자 Long(long l) Long(String str) throws NumberFormatException l : long 형의 값 str : long 형의 값과 같은 의미의 문자열
9.4 포장(Wrapper) 클래스 • Long 클래스의 주요 메소드
9.4 포장(Wrapper) 클래스 • 예제 : LongExam.java
9.5 문자열의 개요 • 자바에서는 문자열을 객체로 취급 • java.lang 패키지에 포함 • java.lang.String 클래스와 java.lang.StringBuffer 클래스 제공 • String 클래스 : 한번 생성된 다음 변하지 않는 문자열에 사용 • StringBuffer 클래스 : 계속하여 변할 수 있는 문자열에 사용 • 문자열을 2개의 클래스로 제공하는 이유 : 효율성
9.6 String 클래스 • 생성자 String() String(char chars[]) String(char chars[], int startindex, int numChars) String(String strObj) String(byte asciiChars[], byte highOrderByte) String(byte asciiChars[], byte highOrderByte, int startindex, int numChars) String(byte asciiChars[]) String(byte asciiChars[], int startIndex, int numChars) chars[] : 문자 배열 startindex : 부분 문자열을 추출하기 위해 지정된 인덱스 값 numChars : startindex에서 시작하여 추출할 문자 또는 바이트의 개수 asciiChars[] : 바이트 배열로서 아스키(ascii) 문자 배열을 의미 highOrderByte : 각 문자들(아스키, 한글 등)의 상위 바이트를 지정하는 값이며, 아스키 문자를 지정하기 위해서는 0을 사용
9.6 String 클래스 • String 클래스의 주요 메소드
9.6 String 클래스 • String 클래스의 주요 메소드-계속
9.6 String 클래스 • String 클래스의 주요 메소드-계속
9.6 String 클래스 • 예제 : StringExam1.java • 예제 : StringExam2.java
결과로 5를 출력 9.6 String 클래스 9.6.1 문자열의 길이 • 메소드 : int length() : 문자열의 길이를 반환 char chars[] = {'K', 'o', 'r', 'e', 'a’}; String s = new String(chars); System.out.println(s.length());
9.6 String 클래스 9.6.2 메소드를 이용하지 않는 문자열의 조작 • New를 사용하지 않고 문자열을 생성 String s2 = "2002 WorldCup Korea"; // 리터럴을 사용한 문자열 생성 System.out.println("2002 Pusan Asiad".length()); // String 객체 대신에 직접 스트링 리터럴을 사용할 수 있다. 16을 출력 • “+” 연산자를 이용하여 문자열을 결합 String age = "20"; String s = "그의 나이는 " + age + "세 입니다."; System.out.println(s); // "그의 나이는 20세입니다."를 출력
9.6 String 클래스 • 문자열이 아닌 다른 형의 데이터도 문자열과 결합 int age = 20; String s1 = "그의 나이는 " + age + "세 입니다."; // int 형의 데이터를 문자열로 변환하여 결합 System.out.println(s1); // "그의 나이는 20세입니다."를 출력 String s2 = "WorldCup " + 2 + 0 + 0 + 2; System.out.println(s2); // "WorldCup 2002"를 출력 String s3 = "WorldCup " + (2 + 0 + 0 + 2); // "WorldCup 4"를 출력
9.6 String 클래스 9.6.3 문자열에서의 문자 추출 • 메소드 char charAt(int i) : 문자열중에서 i번째 문자를 반환 void getChars(int sourceStart, int sourceEnd, char target[], int targetStart) : 문자열의 일부를 문자 배열로(target[])제공.
9.6 String 클래스 • 예제 : StringExtract.java
9.6 String 클래스 9.6.4 문자열 비교 • 메소드 boolean equals(Object str) : str로 지정된 문자열과 현재의 문자열이 같은지를 비교 boolean equalsIgnoreCase(String str) : 문자열 비교시 대소문자 무시 boolean startsWith(String str) : 현재의 문자열이 str로 지정된 문자열로 시작하면 true, 아니면 false를 반환 boolean endsWith(String str) : 문자열이 str로 끝나면 true, 아니면 false
9.6 String 클래스 • 예 String s1 = "WorldCup Korea"; System.out.println(s1.startsWith("Wor")); // true 출력 System.out.println(s1.endsWith("rea")); // true 출력 • 예제 : EqualsExam.java
9.6 String 클래스 9.6.5 문자열 비교 - compareTo() • 메소드 int compareTo(String str) : 현재의 문자열과 str로 지정된 문자열을 비교하 여 현재의 문자열이 str로 지정된 문자열보다 크면 양수, 같으면 0, 작으면 음수값을 반환. *작다는 의미는 순서(알파벳)에 따라 앞에 온다는 의미
9.6 String 클래스 • 예제 : StringCompare.java
9.6 String 클래스 9.6.6 문자열 탐색 • 문자열내에서 지정된 문자나 부분 문자열을 찾아내기 위한 2개의 메소드 제공. 2개의 메소드는 찾고자하는 문자나 부분 문자열의 위치를 반환 • 메소드 int indexOf(String str) int indexOf(int ch, int startIndex) int indexOf(String str, int startIndex) int lastindexOf(String str) int lastindexOf(int ch, int startIndex) int lastindexOf(String str, int startIndex)
9.6 String 클래스 • 예제 : IndexExam.java
9.6 String 클래스 9.6.7 문자열의 변환 • String 클래스의 객체로 생성된 문자열은 변환될 수 없다. String 클래스는 현재의 문자열을 변환하여 새로운 문자열을 생성하는 메소드를 제공한다 • 메소드 String substring(int startIndex, int endIndex) : 부분 문자열을 반환 String concat(String constr) : 결합된 문자열 반환 String replace(char original, char replacement) : 치환된 문자열 반환 String trim() : 문자열의 시작과 끝부분에 있는 공백이 제거된 문자열을 반환
9.6 String 클래스 • 예제 : SubStringExam.java
9.6 String 클래스 9.6.8 형 변환 • 다른 형의 데이터를 문자열로 변환하는 메소드 static String valueOf(double num) static String valueOf(long num) static String valueOf(Object obj) static String valueOf(char chars[]) static String valueOf(char chars[], int startIndex, int numChars) • 대소문자 변환 메소드. String toLowerCase() String toUpperCase()
9.6 String 클래스 • 예제 : ConvertString.java
9.7 StringBuffer 클래스 • 변할 수 있는 문자열을 가진다 • 생성자 StringBuffer() : 묵시적으로 16개의 문자를 저장할 수 있는 객체를 생성 StringBuffer(int size) : size 크기의 객체를 생성 StringBuffer(String str) : str로 지정된 문자열과 추가로 16개의 문자를 더 저장할 수 있는 객체를 생성 • StringBuffer 객체는 객체의 크기가 변할 때 마다 메모리를 재 할당한다(16개의 문자를 저장할 수 있는 버퍼 단위로)
9.7 StringBuffer 클래스 • StringBuffer 클래스의 메소드
9.7 StringBuffer 클래스 • StringBuffer 클래스의 메소드-계속
9.7 StringBuffer 클래스 • 예제 : StringBufferExam1.java • 예제 : StringBufferExam2.java
AbstractCollection AbstractList AbstractSequentialList LinkedList ArrayList Vector Stack AbstractSet HashSet LinkedHashSet TreeSet AbstractMap HashMap LinkedHashMap Collection Framework TreeMap object Arrays BitSet Calendar GregorianCalendar Collections Date Dictionary Hashtable Properties EventObject Locale Observable Random StringTokenizer Scanner 9.8 유틸리티 패키지 개요
9.9 Random 클래스 • 난수 발생 기능 제공 • double, float, int, long 등 다양한 형태의 난수 제공 • 생성자 Random() // 현재의 시간을 초기값으로 하는 난수 발생 Random(long seed) // seed 값을 초기값으로 하는 난수 발생
9.9 Random 클래스 • Random 클래스의 주요 메소드 • 예제 : RandomExam.java