SqueakByExample:12.7: Difference between revisions
Jump to navigation
Jump to search
Onionmixer (talk | contribs) (번역수정) |
Onionmixer (talk | contribs) (번역수정) |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
==Metaclass 의 메타클래스는 | ==Metaclass 의 메타클래스는 Metaclass 의 인스턴스이다.== | ||
[[image:TranslucentMetaclassClassClass.png|none|1024px|thumb|그림 12.10: 모든 | [[image:TranslucentMetaclassClassClass.png|none|1024px|thumb|그림 12.10: 모든 메타클래스는 Metaclass 의 인스턴스이며 Metaclass 의 메타클래스도 마찬가지입니다.]] | ||
답변이 필요한 질문은 이제 하나가 남았군요. 바로 Metaclass class 의 클래스는 무엇인가? 입니다. | |||
답변은 간단합니다. 바로 메타클래스입니다. 물론 시스템내의 다른 메타클래스처럼, Metaclass 의 인스턴스여야 합니다.(그림 12.10 참조) | |||
위의 그림은, 모든 메타클래스는 Metaclass 의 인스턴스이며 Metaclass 의 메타클래스 또한 동일하게 Metaclass 의 인스턴스임을 알려주고 있습니다. 그림 12.9 와 그림 12.10 을 비교하면 Object class 까지 메타클래스의 계층은 클래스 계층에 대한 완벽한 반영이 된다는걸 알 수 있습니다. | |||
아래의 예제는, 클래스 계층의 조회에 대해서 그림 12.10 이 나타내는 내용을 정확히 보여주고 있습니다.(사실대로 말하자면, 실제로 사용할때는 약간의 차이가 습니다. Object class superclass 의 결과는 ProtoObject class 가 됩니다, Class 가 아니죠. 스퀵에서 Class 까지 가기 위해서는 한단계의 super클래스를 더 거쳐야 합니다.) | |||
Line 33: | Line 37: | ||
예시 12.3: | 예시 12.3: Metaclass 의 인스턴스 | ||
<syntaxhighlight lang="smalltalk"> | <syntaxhighlight lang="smalltalk"> | ||
Line 43: | Line 47: | ||
예시 12.3: Metaclass 의 class 는 Metaclass | 예시 12.3: Metaclass 의 class 는 Metaclass 가 됩니다 | ||
<syntaxhighlight lang="smalltalk"> | <syntaxhighlight lang="smalltalk"> |
Latest revision as of 16:23, 16 September 2013
Metaclass 의 메타클래스는 Metaclass 의 인스턴스이다.
답변이 필요한 질문은 이제 하나가 남았군요. 바로 Metaclass class 의 클래스는 무엇인가? 입니다.
답변은 간단합니다. 바로 메타클래스입니다. 물론 시스템내의 다른 메타클래스처럼, Metaclass 의 인스턴스여야 합니다.(그림 12.10 참조)
위의 그림은, 모든 메타클래스는 Metaclass 의 인스턴스이며 Metaclass 의 메타클래스 또한 동일하게 Metaclass 의 인스턴스임을 알려주고 있습니다. 그림 12.9 와 그림 12.10 을 비교하면 Object class 까지 메타클래스의 계층은 클래스 계층에 대한 완벽한 반영이 된다는걸 알 수 있습니다.
아래의 예제는, 클래스 계층의 조회에 대해서 그림 12.10 이 나타내는 내용을 정확히 보여주고 있습니다.(사실대로 말하자면, 실제로 사용할때는 약간의 차이가 습니다. Object class superclass 의 결과는 ProtoObject class 가 됩니다, Class 가 아니죠. 스퀵에서 Class 까지 가기 위해서는 한단계의 super클래스를 더 거쳐야 합니다.)
예시 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