SqueakByExample:12.7: Difference between revisions
Jump to navigation
Jump to search
Onionmixer (talk | contribs) (SBE Metaclass의metaclass는Metaclass의인스턴스입니다 페이지 추가) |
Onionmixer (talk | contribs) (번역수정) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
== | ==Metaclass 의 메타클래스는 Metaclass의 인스턴스입니다.== | ||
[[image:TranslucentMetaclassClassClass.png|none|1024px|thumb|그림 12.10: 모든 메타클래스들은 심지어 Metaclass의 | [[image:TranslucentMetaclassClassClass.png|none|1024px|thumb|그림 12.10: 모든 메타클래스들은 심지어 Metaclass의 메타클래스이기도 한, 클래스 Metaclass의 인스턴스입니다.(12.6에 같은 그림이 있습니다)]] | ||
답변되어야 할 마지막 질문은 Metaclass class의 클래스가 무엇인가? 입니다. | 답변되어야 할 마지막 질문은 Metaclass class의 클래스가 무엇인가? 입니다. | ||
답변은 단순합니다. 그 클래스는 | 답변은 단순합니다. 그 클래스는 메타클래스이며, 시스템에 있는 모든 다른 메타클래스들 처럼, 반드시 Metaclass의 인스턴스가 되어야 합니다. (그림 12.10을 보십시오) | ||
그림은 Metaclass 자체의 | 그림은 Metaclass 자체의 메타클래스를 포함하여, 어떻게 모든 메타클래스 Metaclass의 인스턴스인지를 보여드립니다. 만약 여러분이 그림 12.9와 12.10을 비교하신다면, 메타클래스 계층이, 오브젝트 클래스에 이르기까지 클래스 계층을 어떻게 완벽하게 반영하는지를 보게 되실 것입니다. | ||
다음 예시는, 그림 12.10이 정확하다는 것을 나타내기 위해 클래스 계층도를 조회하는 방법을 보여드립니다. (실제로, 여러분은 우리가 악의없는 거짓말을 하였다는 것을 알게 되실 것입니다. Object class superclass ⇒ ProtoObject class이며, ⇒ Class가 아닙니다. 스퀵에서, 우리는 Class에 도달하기 위해 더 높은 | 다음 예시는, 그림 12.10이 정확하다는 것을 나타내기 위해 클래스 계층도를 조회하는 방법을 보여드립니다. (실제로, 여러분은 우리가 악의없는 거짓말을 하였다는 것을 알게 되실 것입니다. Object class superclass ⇒ ProtoObject class이며, ⇒ Class가 아닙니다. 스퀵에서, 우리는 Class에 도달하기 위해 더 높은 상위 클래스로 가야 합니다) | ||
예시 12.1: 클래스 | 예시 12.1: 클래스 계층 | ||
<syntaxhighlight lang="smalltalk"> | <syntaxhighlight lang="smalltalk"> | ||
TranslucentColor superclass ⇒ Color | TranslucentColor superclass ⇒ Color | ||
Line 20: | Line 21: | ||
예시 12.2: 평행 메타클래스 | 예시 12.2: 평행 메타클래스 계층 | ||
<syntaxhighlight lang="smalltalk"> | <syntaxhighlight lang="smalltalk"> | ||
TranslucentColor class superclass ⇒ Color class | TranslucentColor class superclass ⇒ Color class | ||
Line 32: | Line 34: | ||
예시 12.3: Metaclass의 인스턴스 | 예시 12.3: Metaclass의 인스턴스 | ||
<syntaxhighlight lang="smalltalk"> | <syntaxhighlight lang="smalltalk"> | ||
TranslucentColor class class ⇒ Metaclass | TranslucentColor class class ⇒ Metaclass | ||
Line 40: | Line 43: | ||
예시 12.3: | 예시 12.3: Metaclass 의 class 는 Metaclass 입니다 | ||
<syntaxhighlight lang="smalltalk"> | <syntaxhighlight lang="smalltalk"> | ||
Metaclass class class ⇒ Metaclass | Metaclass class class ⇒ Metaclass | ||
Metaclass superclass ⇒ ClassDescription | Metaclass superclass ⇒ ClassDescription | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 15:58, 16 September 2013
Metaclass 의 메타클래스는 Metaclass의 인스턴스입니다.
답변되어야 할 마지막 질문은 Metaclass class의 클래스가 무엇인가? 입니다.
답변은 단순합니다. 그 클래스는 메타클래스이며, 시스템에 있는 모든 다른 메타클래스들 처럼, 반드시 Metaclass의 인스턴스가 되어야 합니다. (그림 12.10을 보십시오)
그림은 Metaclass 자체의 메타클래스를 포함하여, 어떻게 모든 메타클래스 Metaclass의 인스턴스인지를 보여드립니다. 만약 여러분이 그림 12.9와 12.10을 비교하신다면, 메타클래스 계층이, 오브젝트 클래스에 이르기까지 클래스 계층을 어떻게 완벽하게 반영하는지를 보게 되실 것입니다.
다음 예시는, 그림 12.10이 정확하다는 것을 나타내기 위해 클래스 계층도를 조회하는 방법을 보여드립니다. (실제로, 여러분은 우리가 악의없는 거짓말을 하였다는 것을 알게 되실 것입니다. Object class superclass ⇒ ProtoObject class이며, ⇒ Class가 아닙니다. 스퀵에서, 우리는 Class에 도달하기 위해 더 높은 상위 클래스로 가야 합니다)
예시 12.1: 클래스 계층
TranslucentColor superclass ⇒ Color
Color superclass ⇒ Object
예시 12.2: 평행 메타클래스 계층
TranslucentColor class superclass ⇒ Color class
Color class superclass ⇒ Object class
Object class superclass superclass ⇒ Class "NB: skip ProtoObject class"
Class superclass ⇒ ClassDescription
ClassDescription superclass ⇒ Behavior
Behavior superclass ⇒ Object
예시 12.3: Metaclass의 인스턴스
TranslucentColor class class ⇒ Metaclass
Color class class ⇒ Metaclass
Object class class ⇒ Metaclass
Behavior class class ⇒ Metaclass
예시 12.3: Metaclass 의 class 는 Metaclass 입니다
Metaclass class class ⇒ Metaclass
Metaclass superclass ⇒ ClassDescription