GnuSmalltalkUsersGuide:BaseChapter 031

From 흡혈양파의 번역工房
Jump to navigation Jump to search
Class

Class

네임스페이스 Smalltalk에 정의됨

슈퍼클래스: ClassDescription

범주: 언어-구현


내가 바로 그 유명한 클래스 객체다. 나의 인스턴스들은 시스템의 클래스들이다. 나는 보통 클래스에 기인하는 정보를 제공한다; 즉, 클래스명, 클래스 주석(내가 없었다면 당신이 이 글을 읽을 일도 없다), 클래스의 인스턴스 변수 리스트, 클래스 범주.


Class 클래스: 초기화하기

initialize

루트 클래스의 특수 초기화를 실행하라.


Class: 인스턴스와 변수 접근하기

addClassVarName: aString

주어진 이름으로 된 클래스 변수를 클래스 풀 dictionary로 추가하라.

addClassVarName: aString value: valueBlock

주어진 이름으로 된 클래스 변수를 클래스 풀 dictionary로 추가하고 valueBlock을 그 initializer로서 평가하라.

addSharedPool: aDictionary

주어진 공유 풀을 클래스의 풀 dictionary 리스트에 추가하라.

allClassVarNames

수신자의 클래스 풀 dictionary 내와 슈퍼클래스의 클래스 풀 dictionary마다 존재하는 변수명을 응답하라.

bindingFor: aString

주어진 이름으로 된 클래스 변수에 대한 변수 바인딩을 응답하라.

category

클래스 범주를 응답하라.

category: aString

클래스 범주를 aString으로 변경하라.

classPool

클래서 풀 dictionary를 응답하라.

classPragmas

이 클래스의 file-out으로 작성된 pragmas를 리턴하라.

classVarNames

클래스 풀 dictionary 내의 변수명을 응답하라.

comment

클래스 주석을 응답하라.

comment: aString

클래스명을 변경하라.

environment

'environment'를 응답하라.

environment: aNamespace

수신자의 환경을 aNamespace로 설정하고 모든 것을 재컴파일하라.

initialize

자식들(children)에게서 재정의됨 (?)

initializeAsRootClass

루트 클래스로 예약(reserved)된 특수 초기화를 실행하라.

name

클래스명을 응답하라.

removeClassVarName: aString

클래스로부터 클래스 변수를 제거하되 클래스 변수가 존재하지 않거나 아직 사용 중인 경우 오류가 발생한다.

removeSharedPool: aDictionary

클래스의 풀 dictionary 리스트에 주어진 dictionary를 제거하라.

sharedPools

클래스가 정의한 공유 풀의 이름을 리턴하라.

superclass: aClass

수신자의 슈퍼클래스를 설정하라.


Class: 정리하기

fileOutDeclarationOn: aFileStream

클래스 정의를 aFileStream으로 file out하라. Parser 패키지가 필요하다.

fileOutOn: aFileStream

완전한 클래스 설명을 file out하라: 클래스 정의, 클래스 및 인스턴스 메서드. Parser 패키지가 필요하다.


Class: 인스턴스 생성

extend

현재 네임스페이스에 수신자의 버전을 재정의하라. 주목: 해당 메서드는 시스템 클래스로 전송 시 다양한 방식으로 문제를 야기할 수 있다; 직면할 수 있는 문제의 예는 매뉴얼에서 네임스페이스와 관련된 절을 참조하길 바란다.

subclass: classNameString

주어진 이름으로 된 수신자의 서브클래스를 정의하라. 클래스가 이미 정의되어 있다면 그 인스턴스나 클래스 변수를 수정하지 않으나 불가피하다면 필요한 모든 것을 재컴파일하라.

subclass: classNameString instanceVariableNames: stringInstVarNames classVariableNames: stringOfClassVarNames poolDictionaries: stringOfPoolNames category: categoryNameString

주어진 이름, 인스턴스 변수, 클래스 변수, 풀 dictionary, 범주로 수신자의 고정된 서브클래스를 정의하라. 클래스가 이미 정의되어 있는 경우 꼭 필요하다면 모든 것을 재컴파일하라.

#short

variable: shape subclass: classNameString instanceVariableNames: stringInstVarNames classVariableNames: stringOfClassVarNames poolDictionaries: stringOfPoolNames category: categoryNameString

주어진 이름, 모양, 인스턴스 변수, 클래스 변수, 풀 dictionary, 범주로 수신자의 가변(variable) 서브클래스를 정의하라. 클래스가 이미 정의되어 있는 경우 꼭 필요하다면 모든 것을 재컴파일하라. 모양은 #byte #int8 #character #short #ushort #int #uint #int64 #uint64 #utf32 #float #double #pointer 중 하나로 가능하다.

variableByteSubclass: classNameString instanceVariableNames: stringInstVarNames classVariableNames: stringOfClassVarNames poolDictionaries: stringOfPoolNames category: categoryNameString

주어진 이름, 인스턴스 변수("일 것이다), 클래스 변수, 풀 dictionary, 범주로 수신자의 바이트 가변 서브클래스를 정의하라. 클래스가 이미 정의되어 있는 경우 꼭 필요하다면 모든 것을 재컴파일하라.

variableSubclass: classNameString instanceVariableNames: stringInstVarNames classVariableNames: stringOfClassVarNames poolDictionaries: stringOfPoolNames category: categoryNameString

주어진 이름, 인스턴스 변수, 클래스 변수, 풀 dictionary, 범주로 수신자의 가변 포인터 서브클래스를 정의하라. 클래스가 이미 정의되어 있는 경우 꼭 필요하다면 모든 것을 재컴파일하라.

variableWordSubclass: classNameString instanceVariableNames: stringInstVarNames classVariableNames: stringOfClassVarNames poolDictionaries: stringOfPoolNames category: categoryNameString

주어진 이름, 인스턴스 변수("일 것이다), 클래스 변수, 풀 dictionary, 범주로 수신자의 워드 가변 서브클래스를 정의하라. 클래스가 이미 정의되어 있는 경우 꼭 필요하다면 모든 것을 재컴파일하라


Class: 인스턴스 생성 - 대안적 방법

categoriesFor: method are: categories

IBM Smalltalk로부터 file in용으로만 존재하므로 사용하지 말라.

subclass: classNameString classInstanceVariableNames: stringClassInstVarNames instanceVariableNames: stringInstVarNames classVariableNames: stringOfClassVarNames poolDictionaries: stringOfPoolNames

IBM Smalltalk로부터 file in용으로만 존재하므로 사용하지 말라.

subclass: classNameString instanceVariableNames: stringInstVarNames classVariableNames: stringOfClassVarNames poolDictionaries: stringOfPoolNames

IBM Smalltalk로부터 file in용으로만 존재하므로 사용하지 말라.

variableByteSubclass: classNameString classInstanceVariableNames: stringClassInstVarNames classVariableNames: stringOfClassVarNames poolDictionaries: stringOfPoolNames

IBM Smalltalk로부터 file in용으로만 존재하므로 사용하지 말라.

variableByteSubclass: classNameString classVariableNames: stringOfClassVarNames poolDictionaries: stringOfPoolNames

IBM Smalltalk로부터 file in용으로만 존재하므로 사용하지 말라.

variableLongSubclass: classNameString classInstanceVariableNames: stringClassInstVarNames classVariableNames: stringOfClassVarNames poolDictionaries: stringOfPoolNames

IBM Smalltalk로부터 file in용으로만 존재하므로 사용하지 말라.

variableLongSubclass: classNameString classVariableNames: stringOfClassVarNames poolDictionaries: stringOfPoolNames

IBM Smalltalk로부터 file in용으로만 존재하므로 사용하지 말라.

variableSubclass: classNameString classInstanceVariableNames: stringClassInstVarNames instanceVariableNames: stringInstVarNames classVariableNames: stringOfClassVarNames poolDictionaries: stringOfPoolNames

IBM Smalltalk로부터 file in용으로만 존재하므로 사용하지 말라.

variableSubclass: classNameString instanceVariableNames: stringInstVarNames classVariableNames: stringOfClassVarNames poolDictionaries: stringOfPoolNames

IBM Smalltalk로부터 file in용으로만 존재하므로 사용하지 말라.


Class: pragmas

pragmaHandlerFor: aSymbol

pragma aSymbol을 위해 (어쩌면 상속된) 등록된 처리기를 응답하고, 찾을 수 없다면 nil을 응답하라.

registerHandler: aBlock forPragma: pragma

주어진 이름으로 된 pragma를 마주칠 때마다 메서드를 컴파일하면서 CompiledMethod과 pragma 인자값의 배열을 이용해 aBlock을 호출하라.


Class: 인쇄하기

article

수신자명으로 괜찮은 관사('a' 또는 'an')를 응답하라.

printOn: aStream

수신자의 표현을 aStream 상에 인쇄하라.

storeOn: aStream

수신자로 컴파일하는 스몰토크 코드를 aStream 상에 보관하라.


Class: 저장하기와 로딩하기

binaryRepresentationVersion

객체의 현재 표현 버전을 나타내는 숫자>=0 을 응답하라. 기본 구현은 0을 응답한다.

convertFromVersion: version withFixedVariables: fixed indexedVariables: indexed for: anObjectDumper

VersionableObjectProxy 가 클래스로 부착된 경우 해당 메서드가 호출된다. 이는 객체를 위해 보관된 버전 번호(객체가 VersionableObjectProxy를 사용하지 않은 경우 nil을 응답), 고정 인스턴스 변수, 색인된 인스턴스 변수, 객체를 읽은 ObjectDumper를 수신한다. 기본 구현은 버전을 무시하고, 주어진 고정 및 색인된 인스턴스 변수를 이용해 단순히 수신자의 인스턴스를 채운다 (클래스 인스턴스의 크기가 고정된 경우 nil을 응답). 인스턴스 변수가 클래스로부터 제거된 경우 나머지도 무시한다; 현재 클래스는 고정되어 있는데 이전에 색인되었던 경우 색인된(indexed) 것은 사용되지 않는다.

nonVersionedInstSize

클래스가 VersionableObjectProxy를 사용하지 않고 객체를 보관할 때 사용하던 인스턴스 변수의 수를 응답하라. 기본 구현은 현재 instSize를 응답한다.


Class: 보안

check: aPermission

해당 설명 없음..

securityPolicy

'securityPolicy'를 응답하라.

securityPolicy: aSecurityPolicy

해당 설명 없음.


Class: 아직 분류되지 않음

allSharedPoolDictionariesDo: aBlock

메타클래스 내 메서드에서 보이는 공유 풀을 올바른 순으로 응답하라.


Class: 검사하기

= aClass

두 개의 클래스 객체가 같은 것으로 간주되는 경우 true를 응답하라.


Class: 기능 검사하기

asClass

수신자를 응답하라.

isClass

'true'를 응답하라.


Notes