<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://workspace.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=AndreaSmalltalkLecture%3AQnA_04</id>
	<title>AndreaSmalltalkLecture:QnA 04 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://workspace.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=AndreaSmalltalkLecture%3AQnA_04"/>
	<link rel="alternate" type="text/html" href="https://workspace.onionmixer.net/wiki/index.php?title=AndreaSmalltalkLecture:QnA_04&amp;action=history"/>
	<updated>2026-04-20T09:25:26Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://workspace.onionmixer.net/wiki/index.php?title=AndreaSmalltalkLecture:QnA_04&amp;diff=746&amp;oldid=prev</id>
		<title>Onionmixer: 안드레아::질문과답-4 페이지 추가</title>
		<link rel="alternate" type="text/html" href="https://workspace.onionmixer.net/wiki/index.php?title=AndreaSmalltalkLecture:QnA_04&amp;diff=746&amp;oldid=prev"/>
		<updated>2013-12-05T07:32:08Z</updated>

		<summary type="html">&lt;p&gt;안드레아::질문과답-4 페이지 추가&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;;질문과 답변-4::객체지향 언어의 자격...?&lt;br /&gt;
&lt;br /&gt;
==객체지향 언어의 자격...?==&lt;br /&gt;
&lt;br /&gt;
안녕하세요?&lt;br /&gt;
&lt;br /&gt;
음, 객체지향 언어라면, 일단 객체지향 패러다임을 제대로 지원해야 할 줄로 압니다. 사람들마다 생각하는 것이 조금씩 다르겠지만, 일단 제가 공부했었고, 또한 느낀 것을 바탕으로 아래의 조건들이 만족되어야 한다고 생각합니다.&lt;br /&gt;
&lt;br /&gt;
* 포장성(encapsulation)&lt;br /&gt;
* 다형성(polymorphism)&lt;br /&gt;
* 상속성(inheritance)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
졸면서 쓰는 것이라서 철자가 제대로 맞는지...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
우선 포장성부터. 이것은 하나의 객체에 그 상태를 나타내는 자료와 객체의 행동을  규정하는 길수(method)를 함께 포장해 넣을 수 있느냐 하는 문제입니다. 보통은 객체의 모형인 갈래(class)를 만들어 놓고, 이 갈래에 길수와 성분(member)들을  규정해서 이 규정 대로 객체를 생성해 냅니다. 이때 객체의 외부에서  함부로 객체의 성분을 바꿀 수 없도록 하는 것이 포장성인데, 대부분의 언어에서는 가무림(private), 터놓음(public), 보호됨(protected) 등의 접근권을 제한하는 방식으로 포장성을 구현합니다. 물론 다 그런건 아니고 Smalltalk와 같은 경우는 모든 성분들은 가무려지고, 반대로 모든 길수들은 드러내 놓는 방식을 취하기도 합니다. 어쨌건 포장성이란 객체를 조작할 때 객체를 만든 사람이 마련해 놓은 규칙(이를 interface 또는 protocol이라 하지요)을 통해서만 접근할 수 있다는 것이 중요합니다. TV의 속을 마음대로 만져서 조작하느 게 아니라 지정된 스위치를 눌러서 조작하는거랑 같다고 보면 됩니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
다음은 다형성. 이는 어떤 지시(message)를 서로 다른 객체에게 보냈을 때, 그 지시를 받은 객체(receiver)의 갈래에 따라 서로 다르게 반응하는 성질을 말합니다. 동적 결합(dynamic binding), 길수의 중복정의(overloading), 다중 뽑아내기(dispatching) 등이 다형성을 구현하기 위한 몇 가지의 방법으로 사용됩니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
상속성. 이는 어떤 갈래의 특성을 그대로 물려받아서 새로운 갈래를 지을 수 있다는 말입니다. 이를태면 &amp;quot;사람&amp;quot;이라고하는 갈래에 들어 있는 성분과 길수를 그대로 물려받아서 새롭게 &amp;quot;학생&amp;quot;, &amp;quot;교수&amp;quot; 등의 갈래를 만들어 내는 것입니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
아마 JavaScript 는 포장성과 상속성을 지원하지 않는다고 알고있습니다. 이를태면 사용자가 마음대로 갈래를 지어서 객체를 만들어내지 못한다고 알고 있습니다.  따라서 상속성도 지원받지 못한다고 하고요. Visual Basic 을 객체지향 언어라고 보기 어려운 것은 바탕글(source) 수준의 상속성을 지원하지 않고 있기 때문이라고 합니다. 뭐, 이에 대해 이의를 제기사힐 분이 있으실 테지만요...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
제가 혹 잘못 알고 있는 것이 있다면 바로잡아 주십시오. 그럼.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:AndreaSmalltalkLecture]]&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
</feed>