SqueakByExample:5.8: Difference between revisions

From 흡혈양파의 번역工房
Jump to navigation Jump to search
(SBE 5장요약 페이지 축)
 
mNo edit summary
Line 5: Line 5:
* 모든 것은 오브젝트이며, 정수와 같은 프리미티브 엔티티(primitive entities) 오브젝트이고, 또한 클래스도 일등급(first-class) 오브젝트 입니다.
* 모든 것은 오브젝트이며, 정수와 같은 프리미티브 엔티티(primitive entities) 오브젝트이고, 또한 클래스도 일등급(first-class) 오브젝트 입니다.
* 모든 오브젝트는 클래스의 인스턴스이며, 클래스는 전용 인스턴스 변수와 그 변수의 인스턴스들의 동작을 통해, 그 자체의 인스턴스 구조를 정의합니다. 각 클래스는 그 클래스의 메타클래스(metaclass)가 가진 고유한 인스턴스입니다. 클래스 변수들은 클래스와 그 클래스의 모든 인스턴스들에 의해 공유되는 전용 변수들(private variables)입니다. 클래스는 그 클래스의 인스턴스가 가진 인스턴스 변수에 직접 접근할 수 없으며, 인스턴스는 그 인스턴스의 클래스가 가진 인스턴스 변수에 접근할 수 없습니다. Accessors(접근자)는 그 접근자가 반드시 필요할 경우에만 정의되어야만 합니다.
* 모든 오브젝트는 클래스의 인스턴스이며, 클래스는 전용 인스턴스 변수와 그 변수의 인스턴스들의 동작을 통해, 그 자체의 인스턴스 구조를 정의합니다. 각 클래스는 그 클래스의 메타클래스(metaclass)가 가진 고유한 인스턴스입니다. 클래스 변수들은 클래스와 그 클래스의 모든 인스턴스들에 의해 공유되는 전용 변수들(private variables)입니다. 클래스는 그 클래스의 인스턴스가 가진 인스턴스 변수에 직접 접근할 수 없으며, 인스턴스는 그 인스턴스의 클래스가 가진 인스턴스 변수에 접근할 수 없습니다. Accessors(접근자)는 그 접근자가 반드시 필요할 경우에만 정의되어야만 합니다.
*  모든 클래스는 superclass를 갖고 있습니다. 단일 상속 계층도의 뿌리(root)는 ProtoObject입니다. 여러분이 정의하는 클래스는 오브젝트 또는 그 오브젝트 서브클래스들로부터 상속됩니다. 추상 클래스들을 정의하는 어떤 구문도 존재하지 안습니다. 추상 클래스란, 실행이 표현식 self subclassResponsibility로 구성된 추상메소드(abstact method)를 가진 클래스 입니다. 비록 스퀵이 오직 단일 상속을 지원하지만, traits로서 메소드 패키지를 만들어, 메소드들의 실행을 공유하는 작업은 쉽습니다.  
*  모든 클래스는 superclass를 갖고 있습니다. 단일 상속 계층도의 뿌리(root)는 ProtoObject입니다. 여러분이 정의하는 클래스는 오브젝트 또는 그 오브젝트 서브클래스들로부터 상속됩니다. 추상 클래스들을 정의하는 어떤 구문도 존재하지 안습니다. 추상 클래스란, 실행이 표현식 self subclassResponsibility로 구성된 추상메서드(abstact method)를 가진 클래스 입니다. 비록 스퀵이 오직 단일 상속을 지원하지만, traits로서 메서드 패키지를 만들어, 메서드들의 실행을 공유하는 작업은 쉽습니다.  
*  모든 것은 메시지 보내기로 이루어집니다. 우리는 “call methods”:(메시지 부르기)를 하지 않고, 우리는 “Send message”(메시지 보내기)를 사용합니다. 그 다음, 수신자(the receiver)는 그 메시지에 응답하기 위해 그 자신의 메소드를 선택합니다.   
*  모든 것은 메시지 보내기로 이루어집니다. 우리는 "call methods":(메시지 부르기)를 하지 않고, 우리는 "Send message"(메시지 보내기)를 사용합니다. 그 다음, 수신자(the receiver)는 그 메시지에 응답하기 위해 그 자신의 메서드를 선택합니다.   
* 메소드 검색(look up)은 상속 사슬(the inheritance chain)을 다르며, super send가 정적이며, 그 super send가 작성된 장소에 있는 클래스의 super class에서 시작되는 반면에, self send는 동적이며 수신자(the receiver)의 클래스에서 메소드 검색을 다시 시작합니다.  
* 메서드 검색(look up)은 상속 사슬(the inheritance chain)을 다르며, super send가 정적이며, 그 super send가 작성된 장소에 있는 클래스의 super class에서 시작되는 반면에, self send는 동적이며 수신자(the receiver)의 클래스에서 메서드 검색을 다시 시작합니다.  
* 3가지 종류의 공유된 변수들이 있습니다. 글로벌 변수들은 시스템 어디에서나 접근할 수 있습니다. 클래스 변수들은 클래스, 그 클래스의 서브클래스 그리고 그 클래스의 인스턴스 사이에서 공유됩니다. Pool 변수들은 클래스들의 선택된 세트 사이에서 공유됩니다. 여러분은 가능한 많이 공유된 변수들을 피해야만 합니다.
* 3가지 종류의 공유된 변수들이 있습니다. 글로벌 변수들은 시스템 어디에서나 접근할 수 있습니다. 클래스 변수들은 클래스, 그 클래스의 서브클래스 그리고 그 클래스의 인스턴스 사이에서 공유됩니다. Pool 변수들은 클래스들의 선택된 세트 사이에서 공유됩니다. 여러분은 가능한 많이 공유된 변수들을 피해야만 합니다.



Revision as of 04:51, 30 August 2012

5장 요약

스퀵의 오브젝트 모델은 모두 단순하고 일정합니다. 모든 것은 오브젝트이며, 거의 모든 것은 메시지 보내기로 이루어집니다.

  • 모든 것은 오브젝트이며, 정수와 같은 프리미티브 엔티티(primitive entities) 오브젝트이고, 또한 클래스도 일등급(first-class) 오브젝트 입니다.
  • 모든 오브젝트는 클래스의 인스턴스이며, 클래스는 전용 인스턴스 변수와 그 변수의 인스턴스들의 동작을 통해, 그 자체의 인스턴스 구조를 정의합니다. 각 클래스는 그 클래스의 메타클래스(metaclass)가 가진 고유한 인스턴스입니다. 클래스 변수들은 클래스와 그 클래스의 모든 인스턴스들에 의해 공유되는 전용 변수들(private variables)입니다. 클래스는 그 클래스의 인스턴스가 가진 인스턴스 변수에 직접 접근할 수 없으며, 인스턴스는 그 인스턴스의 클래스가 가진 인스턴스 변수에 접근할 수 없습니다. Accessors(접근자)는 그 접근자가 반드시 필요할 경우에만 정의되어야만 합니다.
  • 모든 클래스는 superclass를 갖고 있습니다. 단일 상속 계층도의 뿌리(root)는 ProtoObject입니다. 여러분이 정의하는 클래스는 오브젝트 또는 그 오브젝트 서브클래스들로부터 상속됩니다. 추상 클래스들을 정의하는 어떤 구문도 존재하지 안습니다. 추상 클래스란, 실행이 표현식 self subclassResponsibility로 구성된 추상메서드(abstact method)를 가진 클래스 입니다. 비록 스퀵이 오직 단일 상속을 지원하지만, traits로서 메서드 패키지를 만들어, 메서드들의 실행을 공유하는 작업은 쉽습니다.
  • 모든 것은 메시지 보내기로 이루어집니다. 우리는 "call methods":(메시지 부르기)를 하지 않고, 우리는 "Send message"(메시지 보내기)를 사용합니다. 그 다음, 수신자(the receiver)는 그 메시지에 응답하기 위해 그 자신의 메서드를 선택합니다.
  • 메서드 검색(look up)은 상속 사슬(the inheritance chain)을 다르며, super send가 정적이며, 그 super send가 작성된 장소에 있는 클래스의 super class에서 시작되는 반면에, self send는 동적이며 수신자(the receiver)의 클래스에서 메서드 검색을 다시 시작합니다.
  • 3가지 종류의 공유된 변수들이 있습니다. 글로벌 변수들은 시스템 어디에서나 접근할 수 있습니다. 클래스 변수들은 클래스, 그 클래스의 서브클래스 그리고 그 클래스의 인스턴스 사이에서 공유됩니다. Pool 변수들은 클래스들의 선택된 세트 사이에서 공유됩니다. 여러분은 가능한 많이 공유된 변수들을 피해야만 합니다.

Notes