| [ WWW ] in KIDS 글 쓴 이(By): seasons (오히려전법H) 날 짜 (Date): 1996년08월21일(수) 14시17분09초 KDT 제 목(Title): WWW 강좌 10 : Java 배우기 (17) A.Fun.A.Day(393) WWW 강좌 10 : Java 배우기 (17) ----------------------------------------------- < 자바 백서 > 계속 ⊙ 컨스트럭터와 종결자 (Constructors and Finalizers) 자바언어에서 클래스를 선언하면, 그 클래스로부터 객체를 만 들 때, 초기화를 수행하는 최적화된 컨스트럭터를 선언할 수 있고, 쓰레기 수집기가 객체의 해제를 할 때, 꼭 필요한 해체 를 하는 최적화된 종결자 또한 선언할 수 있다. 콘스트럭터를 나타내는 최소한 된 코드를 보자. public final class Integer extends Number { private int value public Integer(int value) { this.value = value ; } } 이 예제는 Integer 클래스를 선언한다. 자바언어의 바탕에는 사실 Integer클래스가 있다 - 그것은 객체의 안쪽에서 정수 값을 캡슐화할 때 필요한 객체 포장이다. 퍼블릭 메쏘드 Integer는 this 클래스의 컨스트 럭터이다. 다음과 같은 선언을 통한 코드로 123이라는 값으로 초기화되 는 Integer 클래스의 새로운 객체를 생성하고 접근할 수 있다. Integer myIntegerObject = new Integer(123) ; 어쨌든, 위의 예제에서 this라는 값은 도대체 무엇인가 ? 객체 자신을 가리키는 방법이 필요할 때, 객체의 내부로부터 클래스의 this 인스탄스를 가리키는 특별한 이름이다. this 값이 얻는 것이 바로 그것이다. 이 코드는 클래스의 종결자 메쏘드(finalize method)를 설명한다. /** * Close the stream when garbage is collected. */ protected void finalize() { try { close() ; } catch(Exception e) { } } 이 종결 메쏘드(finalize method)는 쓰레기가 수집될 때쯤 해서 호출 된다. 특정한 코드에서, 종결 메쏘드는 거의 스트림(stream)을 관리하는 파일기술자(file descriptor)가 닫히는 것을 확실히 하는 객체 에서 쓰이는 I/O 파일 스트림을 닫는다. ⊙ 하위클래스를 만들자(Subclassing) 하위클래스를 만드는 것은 새롭고 강화된 객체를 존재하는 객체를 통해 정의할 수 있는 메커니즘이다. 예로, zebra는 얼룩말이다. zebra의 객체를 생성하려면, zebra는 말(Horse)의 종류이면서, 오직 얼룩말이다. 객체지향의 관점에서, 말의 하위클래스인 Zebra라 불리는 새로운 클래스를 생성할 수 있다. 자바언어의 관점에서, 다음처럼 한다: class Zebra extends Horse { 새로운 인스탄스 변수와 새로운 메쏘드를 여기에 적는다 } 어디에서 정의되었든 말의 정의는 먹고, 울고, 총총 걸어가고, 뛰어다니며, 껑충 뛰는 등의 말의 행동을 설명하는 모든 메쏘드를 정의했을 것이다. 모든 일을 하는 이미 작성된 코드의 이익을 얻을 수 있다 - 바뀌나, 이 경우 발굽을 새로 고안할 필요가 없다. extends 키워드는 Zebra가 말의 하위 클래 스임을 자바컴파일러에게 알려준다. Zebra는 유도된 클래스(derived class)라 불린다 - 베이스 클래스인 말에서 유도된 것이다. 하위클래스화는 이미 개발되어지고, 더욱 더욱 특수한 경우를 위해 더욱 더 중요하고 테스트된 코드를 사용할 수 있게 한다. 특수한 행동을 위해 필요한 클래스의 부분은 겹치게(override) 할 수 있다. 따라서 하위 클래스화는 설계 와 개발, 테스트를 저장한 존재하는 코드의 재활용성(re-use)을 얻게 한다. 실행시스템을 지원하는 자바는 테스트되었고 또한 안전한 쓰레드(thread-safe)인 여러 개의 유틸리티 함수(utility function)를 제공한다. -- ___o ___o ___o ___o ___o __ \\ __ __ \\ __ __ \\ __ __ \\ __ __ \\ __ (*)/ (*) (*)/ (*) (*)/ (*) (*)/ (*) (*)/ (*) +---------------------------------------------------------------------------+ | Won Geun Baek E-Mail: wgbaek@pharaoh.telecom.samsung.co.kr | | Samsung Electronics co. TEL : 02-405-1376 (7:00-18:00 Korea) | +---------------------------------------------------------------------------+ +--------------------------------------------------- | 오히려 전 / | 법 없이도 살수 있는 놈이죠. :<))* \ +----------------------------- hmh@gregory.kaist.ac.kr |