티스토리 뷰

JAVA

TIL(8) 객체 - 앨런케이의 정의(2)

나죽나강 2021. 5. 27. 00:34

/**

참고(Reference)

https://wiki.c2.com/?AlanKaysDefinitionOfObjectOriented

https://brunch.co.kr/@artiveloper/20

*/

 

# 스몰톡크에서 정의한 객체

더보기

1. Everything is An Object.

2. Objects communicate by sending and receiving messages (in terms of objects).

3. Objects have their own memory (in terms of objects).

4. Every object is an instance of a class (which must be an object).

5. The class holds the shared behavior for its instances (in the form of objects in a program list)

6. To eval a program list, control is passed to the first object and the remainder is treated as its message.

 

1. 모든 것은 객체이다.

2. 객체는 메시지를 보내고받는 방식으로 통신합니다 (객체 측면에서).

3. 객체에는 자체 메모리가 있습니다 (객체 측면에서).

4. 모든 객체는 클래스의 인스턴스입니다 (객체 여야 함).

5. 클래스는 인스턴스에 대한 공유 동작을 보유합니다 (프로그램 목록의 객체 형태).

6. 프로그램 목록을 평가하기 위해 제어가 첫 번째 개체로 전달되고 나머지는 메시지로 처리됩니다.

 

# 앨런케이가 생각하는 객체

더보기

1. Everything is An Object.

2. Communication is performed by objects communicating with each other, requesting that objects perform actions. Objects communicate by sending and receiving messages. A message is a request for action, bundled with whatever objects may be necessary to complete the task.

3. Objects have their own memory, which consists of other objects.

4. Every object is an instance of a class. A class simply represents a grouping of similar objects, such as integers or lists.

5. The class is the repository for behavior associated with an object. That is, all objects that are instances of the same class can perform the same actions.So far, similar to 1-5 above. Rule 6 is different. The reference to lists is removed, instead we have:

6. Classes are organized into a singly-rooted tree structure, called the inheritance hierarchy. Memory and behavior associated with instances of a class are available to any class associated with a descendent in this tree structure.

 

1. 모든 것은 객체이다.

2. 통신은 서로 통신하는 객체에 의해 수행되며 객체가 작업을 수행하도록 요청합니다. 객체는 메시지 를 보내고 받음으로써 통신 합니다 . 메시지는 작업을 완료하는 데 필요한 모든 객체와 함께 제공되는 작업 요청입니다.

3. 객체에는 다른 객체로 구성된 자체 메모리가 있습니다.

4. 모든 객체는 클래스의 인스턴스입니다. 클래스는 단순히 정수 또는 목록과 같은 유사한 객체의 그룹을 나타냅니다.

5. 클래스는 객체와 관련된 동작을 위한 저장소입니다 . 즉, 동일한 클래스의 인스턴스 인 모든 객체는 동일한 작업을 수행 할 수 있습니다.

 

6. 클래스는 상속 계층 이라고하는 단일 루트 트리 구조로 구성됩니다 . 클래스의 인스턴스와 관련된 메모리 및 동작은이 트리 구조의 하위 항목과 관련된 모든 클래스에서 사용할 수 있습니다.

 

# 정리

> 객체는 상태행동, 정체성을 갖는다.

> 객체는 내부 데이터(상태)와 메소드(행동)을 가질 수 있으며, 각 객체는 모든 다른 객체와 고유(메모리=정체성)하게 식별될수 있다

 

1. 모든 것은 객체이다.

2. 객체는 메시지를 보내고받는 방식으로 통신합니다.

> 메세지란 객체가 갖는 메소드를 호출하는 것이라고 생각할 수 있다

3. 객체에는 자체 메모리가 있습니다.

> 기존 객체들을 포함시켜 새로운 종류의 객체를 만든다.

4. 모든 객체는 클래스의 인스턴스입니다.

> 객체는 클래스의 인스턴스이다. 클래스가 타입과 같은 의미이다. 클래스를 특징짓는 가장 중요한 것은 '그 클래스가 무슨일을 할 수 있는가이다.'

5. 클래스는 인스턴스에 대한 공유 동작을 보유합니다 (프로그램 목록의 객체 형태).

> 원은 도형이다.

> 특정 원 객체는 도형의 메세지를 받을수 있다.

> 즉, 도형 객체들에게 메세지를 보내면 자동적으로 도형 부류에 적합한 어떤 일을 처리하는 코드를 작성할 수 있다는 의미이다.

6. 프로그램 목록을 평가하기 위해 제어가 첫 번째 개체로 전달되고 나머지는 메시지로 처리됩니다.

 

 

 

 

# 한번 쉬어가는 타임으로 읽어 보면 좋을것 같다!!

우리는 OOP를 완전히 오해했다

저는 오래전 “객체"라는 용어를 만들어 낸 것에 대해 사과합니다. 그것은 많은 사람들이 더 작은 아이디어에 집중하게 만들었습니다. 원래의 아이디어는 “메시지”입니다.
- Alan Kay, the inventor of OOP

 

메시지

앨런 케이는 “객체 지향 프로그래밍" 이라는 용어를 1960년대에 만들었습니다. 그는 생물학 지식을 갖추고 있었고, 살아있는 세포들이 서로 통신하는 것과 같은 방법으로 작동 하는 컴퓨터 프로그램을 만들려고 했었습니다.

 

앨런 케이의 의도는 독립적인 프로그램(세포)들이 서로 메시지를 보냄으로서 정보를 전달하는 것 이었습니다. 독립된 프로그램들의 상태(state)는 결코 외부로 공개되지 않습니다(캡슐화).

 

그것이 다 입니다. OOP는 상속, 다형성, “new” 연산자, 무수한 디자인 패턴따위를 의도하지 않았습니다.

 

가장 순수한 OOP의 모습

얼랭은 가장 순수한 형태의 OOP입니다. 주류의 언어들과 달리, OOP의 핵심 아이디어에 집중합니다 - 그것은 메시지입니다. 얼랭에서 객체들은 불변 속성(immutable)의 메시지로 통신합니다.

 

불변 속성 메시지 전달이 메소드 호출보다 우월한 방법이라는 증거가 있을까요?


당연합니다! 얼랭은 아마도 세계에서 가장 신뢰성 있는 언어일 것 입니다. 거의 모든 통신사들의 인프라가 얼랭으로 작동합니...

 

# 나머지는 링크 참조!!

https://mono9.tistory.com/3

https://johngrib.github.io/wiki/oop-quotes/

 

2021.05.26 - [JAVA] - TIL(7) 객체 - 앨런케이의 정의(1)

 

TIL(7) 객체 - 앨런케이의 정의(1)

/** 참조 (Reference) 99% 복사한 내용입니다! http://everdeenoop.blogspot.com/2017/01/java-bdd.html 참조하면 괜찮을 것 같은 블로그! 아직 안 읽음 https://mono9.tistory.com/3 */ # 객체 - 앨런케이의 정의..

joinwithyou.tistory.com

 

'JAVA' 카테고리의 다른 글

TIL(10) 상속과 구현(인터페이스)  (0) 2021.05.27
TIL(9) 다형성 - 코드적 접근  (0) 2021.05.27
TIL(7) 객체 - 앨런케이의 정의(1)  (0) 2021.05.26
TIL (6) UML 다이어그램  (0) 2021.05.26
TIL (5) 클래스, 객체, 인스턴스  (0) 2021.05.26
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함