SqueakByExample:12.7: Difference between revisions

From 흡혈양파의 번역工房
Jump to navigation Jump to search
(이미지 주석 수정)
(번역수정)
 
Line 1: Line 1:
==Metaclass 의 메타클래스는 Metaclass의 인스턴스입니다.==
==Metaclass 의 메타클래스는 Metaclass 의 인스턴스이다.==


[[image:TranslucentMetaclassClassClass.png|none|1024px|thumb|그림 12.10: 모든 메타클래스는 Metaclass 의 인스턴스이며 Metaclass 의 메타클래스도 마찬가지입니다.]]
[[image:TranslucentMetaclassClassClass.png|none|1024px|thumb|그림 12.10: 모든 메타클래스는 Metaclass 의 인스턴스이며 Metaclass 의 메타클래스도 마찬가지입니다.]]




답변되어야 할 마지막 질문은 Metaclass class의 클래스가 무엇인가? 입니다.
답변이 필요한 질문은 이제 하나가 남았군요. 바로 Metaclass class 의 클래스는 무엇인가? 입니다.


답변은 단순합니다. 그 클래스는 메타클래스이며, 시스템에 있는 모든 다른 메타클래스들 처럼, 반드시 Metaclass의 인스턴스가 되어야 합니다. (그림 12.10을 보십시오)


그림은 Metaclass 자체의 메타클래스를 포함하여, 어떻게 모든 메타클래스 Metaclass의 인스턴스인지를 보여드립니다. 만약 여러분이 그림 12.9와 12.10을 비교하신다면, 메타클래스 계층이, 오브젝트 클래스에 이르기까지 클래스 계층을 어떻게 완벽하게 반영하는지를 보게 되실 것입니다.
답변은 간단합니다. 바로 메타클래스입니다. 물론 시스템내의 다른 메타클래스처럼, Metaclass 의 인스턴스여야 합니다.(그림 12.10 참조)


다음 예시는, 그림 12.10이 정확하다는 것을 나타내기 위해 클래스 계층도를 조회하는 방법을 보여드립니다. (실제로, 여러분은 우리가 악의없는 거짓말을 하였다는 것을 알게 되실 것입니다. Object class superclass ProtoObject class이며, ⇒ Class가 아닙니다. 스퀵에서, 우리는 Class에 도달하기 위해 높은 상위 클래스로 가야 합니다)
 
위의 그림은, 모든 메타클래스는 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: Metaclass의 인스턴스
예시 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 의 인스턴스이다.

그림 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클래스를 더 거쳐야 합니다.)


예시 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


Notes