Java의 정석 제 9 장 java.lang 패키지 Java 정석 2009. 10. 28 남궁성 강의 Chapter 9. java.lang 패키지 http://www.javachobo.com Java의 정석 제 9 장 java.lang 패키지 안녕하십니까? 자바의 정석의 저자 남궁성입니다. 지금부터 제7장 객체지향개념2의 두 번째 강의를 시작하겠습니다. 2009. 10. 28 남궁성 강의 castello@naver.com
Java 1. Object클래스 1.1 Object클래스의 메서드 1.2 equals(Object obj) 정석 Chapter 9. java.lang 패키지 http://www.javachobo.com 1. Object클래스 1.1 Object클래스의 메서드 1.2 equals(Object obj) 1.3 hashCode() 4. Math & wrapper클래스 1.4 toString() 4.1 Math클래스 1.5 clone() 4.2 wrapper클래스 1.6 getClass() 4.3 Number클래스 2. String클래스 2.1 String클래스의 특징 2.2 빈 문자열(empty string) 세부목차인데요. 이 강의는 이와 같은 순서로 진행될 것입니다. 2.3 String클래스의 생성자와 메서드 2.4 문자열과 기본형간의 변환 3. StringBuffer클래스 3.1 StringBuffer클래스의 특징 3.2 StringBuffer클래스의 생성자와 메서드
1. Object클래스 Java 정석 의 Chapter 9. java.lang 패키지 http://www.javachobo.com 1. Object클래스
Java 1.1 Object클래스의 메서드 정석 - 모든 클래스의 최고 조상. 오직 11개의 메서드만을 가지고 있다. Chapter 9. java.lang 패키지 http://www.javachobo.com 1.1 Object클래스의 메서드 - 모든 클래스의 최고 조상. 오직 11개의 메서드만을 가지고 있다. - notify(), wait() 등은 쓰레드와 관련된 메서드이다. - equals(), hashCode(), toString()은 적절히 오버라이딩해야 한다. 4 4
Java 1.2 equals(Object obj) 정석 의 정석 Chapter 9. java.lang 패키지 http://www.javachobo.com 1.2 equals(Object obj) - 객체 자신과 주어진 객체(obj)를 비교한다. 같으면 true, 다르면 false. - Object클래스에 정의된 equals()는 참조변수 값(객체의 주소)을 비교한다. - equals()를 오버라이딩해서 인스턴스변수의 값을 비교하도록 바꾼다. 5 5
Java 1.3 hashCode() 정석 - 객체의 해시코드(int타입의 정수)를 반환하는 메서드(해시함수) Chapter 9. java.lang 패키지 http://www.javachobo.com 1.3 hashCode() - 객체의 해시코드(int타입의 정수)를 반환하는 메서드(해시함수) 다량의 데이터를 저장&검색하는 해싱기법에 사용된다. - Object클래스의 hashCode()는 객체의 내부주소를 반환한다. - equals()를 오버라이딩하면, hashCode()도 같이 오버라이딩 해야한다. equals()의 결과가 true인 두 객체의 hash code는 같아야하기 때문 - System.identityHashCode(Object obj)는 Object클래스의 hashCode()와 동일한 결과를 반환한다. 6 6
Java 1.4 toString() 정석 - 객체의 정보를 문자열(String)로 제공할 목적으로 정의된 메서드 오버라이딩 의 Chapter 9. java.lang 패키지 http://www.javachobo.com 1.4 toString() - 객체의 정보를 문자열(String)로 제공할 목적으로 정의된 메서드 오버라이딩 7 7
Java 1.5 clone() 정석 - 객체 자신을 복제(clone)해서 새로운 객체를 생성하는 메서드 의 정석 Chapter 9. java.lang 패키지 http://www.javachobo.com 1.5 clone() - 객체 자신을 복제(clone)해서 새로운 객체를 생성하는 메서드 - Cloneable인터페이스를 구현한 클래스의 인스턴스만 복제할 수 있다. - Object클래스에 정의된 clone()은 인스턴스변수의 값만을 복제한다. - 인스턴스변수가 참조형일 때, 참조하는 객체도 복제되게 오버라이딩해야함. 8 8
Java 1.6 getClass() 정석 - 자신이 속한 클래스의 Class객체를 반환하는 메서드 Chapter 9. java.lang 패키지 http://www.javachobo.com 1.6 getClass() - 자신이 속한 클래스의 Class객체를 반환하는 메서드 - Class객체는 클래스의 모든 정보를 담고 있으며, 클래스당 단 1개만 존재 클래스파일(*.class)이 메모리에 로드될때 생성된다. Card.class파일 ClassLoader Class객체 - Class객체를 얻는 여러가지 방법 Card c2 = new Card(); Card c2 = (Card)cObj.newInstance(); Card c = new Card(); Class cObj = c.getClass(); String className = Card.class.getName(); Class cObj = Card.class; String className = cObj.getName(); Class cObj = Class.forName(“Card”); 9 9
2. String클래스 Java 정석 의 Chapter 9. java.lang 패키지 10 http://www.javachobo.com 2. String클래스 10
Java 2.1 String클래스의 특징 정석 - 문자형 배열(char[])과 그에 관련된 메서드들이 정의되어 있다. Chapter 9. java.lang 패키지 http://www.javachobo.com 2.1 String클래스의 특징 - 문자형 배열(char[])과 그에 관련된 메서드들이 정의되어 있다. - String인스턴스의 내용은 바꿀 수 없다.(immutable) - String str = “abc”;와 String str = new String(“abc”);의 비교 11 11
Java 2.2 빈 문자열(“”, empty string) 정석 의 정석 Chapter 9. java.lang 패키지 http://www.javachobo.com 2.2 빈 문자열(“”, empty string) - 내용이 없는 문자열. 크기가 0인 char형 배열을 저장하는 문자열 - 크기가 0인 배열을 생성하는 것은 어느 타입이나 가능 - String str=“”;은 가능해도 char c = ‘’;는 불가능 - String은 참조형의 기본값인 null 보다 빈 문자열로 초기화하고 char형은 기본값인 ‘\u0000’보다 공백으로 초기화하자. 12 12
2.3 String클래스의 생성자와 메서드(1/3) Java 의 정석 Chapter 9. java.lang 패키지 http://www.javachobo.com 2.3 String클래스의 생성자와 메서드(1/3) 13 13
2.3 String클래스의 생성자와 메서드(2/3) Java 의 정석 Chapter 9. java.lang 패키지 http://www.javachobo.com 2.3 String클래스의 생성자와 메서드(2/3) 14 14
2.3 String클래스의 생성자와 메서드(3/3) Java 의 정석 Chapter 9. java.lang 패키지 http://www.javachobo.com 2.3 String클래스의 생성자와 메서드(3/3) 15 15
Java 2.4 문자열과 기본형간의 변환 정석 - 기본형 값을 문자열로 바꾸는 두 가지 방법(방법2가 더 빠름) Chapter 9. java.lang 패키지 http://www.javachobo.com 2.4 문자열과 기본형간의 변환 - 기본형 값을 문자열로 바꾸는 두 가지 방법(방법2가 더 빠름) - 문자열을 기본형 값으로 변환하는 방법 16 16
Java 의 정석 Chapter 9. java.lang 패키지 http://www.javachobo.com 17 17
3. StringBuffer클래스 Java 정석 의 Chapter 9. java.lang 패키지 18 http://www.javachobo.com 3. StringBuffer클래스 18
Java 3.1 StringBuffer클래스의 특징 정석 Chapter 9. java.lang 패키지 http://www.javachobo.com 3.1 StringBuffer클래스의 특징 - String처럼 문자형 배열(char[])을 내부적으로 가지고 있다. - 그러나, String클래스와 달리 내용을 변경할 수 있다.(mutable) - 인스턴스를 생성할 때 버퍼(배열)의 크기를 충분히 지정해주는 것이 좋다. (버퍼가 작으면 성능 저하 - 작업 중에 더 큰 배열의 생성이 필요) - String클래스와 달리 equals()를 오버라이딩하지 않았다. 19 19
3.2 StringBuffer클래스의 생성자와 메서드(1/2) Java 의 정석 Chapter 9. java.lang 패키지 http://www.javachobo.com 3.2 StringBuffer클래스의 생성자와 메서드(1/2) 20 20
3.2 StringBuffer클래스의 생성자와 메서드(2/2) Java 의 정석 Chapter 9. java.lang 패키지 http://www.javachobo.com 3.2 StringBuffer클래스의 생성자와 메서드(2/2) 21 21
4. Math & wrapper클래스 Java 정석 의 Chapter 9. java.lang 패키지 22 http://www.javachobo.com 4. Math & wrapper클래스 22
Java 4.1 Math클래스 정석 - 수학계산에 유용한 메서드로 구성되어 있다.(모두 static메서드) 의 Chapter 9. java.lang 패키지 http://www.javachobo.com 4.1 Math클래스 - 수학계산에 유용한 메서드로 구성되어 있다.(모두 static메서드) 23 23
Java 4.2 wrapper클래스 정석 - 기본형을 클래스로 정의한 것. 기본형 값도 객체로 다뤄져야 할 때가 있다. Chapter 9. java.lang 패키지 http://www.javachobo.com 4.2 wrapper클래스 - 기본형을 클래스로 정의한 것. 기본형 값도 객체로 다뤄져야 할 때가 있다. - 내부적으로 기본형(primitive type) 변수를 가지고 있다. - 값을 비교하도록 equals()가 오버라이딩되어 있다. 24 24
Java 4.3 Number클래스 정석 - 숫자를 멤버변수로 갖는 클래스의 조상(추상클래스) 의 Chapter 9. java.lang 패키지 http://www.javachobo.com 4.3 Number클래스 - 숫자를 멤버변수로 갖는 클래스의 조상(추상클래스) 25 25
감사합니다. http://www.javachobo.com Java 정석 의 정석 Chapter 9. java.lang 패키지 http://www.javachobo.com 감사합니다. 더 많은 동영상강좌를 아래의 사이트에서 구하실 수 있습니다. http://www.javachobo.com 이것으로 제 7장 객체지향개념II-3에 대한 강의를 모두 마치겠습니다. 감사합니다. 이 동영상강좌는 비상업적 용도일 경우에 한해서 저자의 허가없이 배포하실 수 있습니다. 그러나 일부 무단전제 및 변경은 금지합니다. 관련문의 : 남궁성 castello@naver.com