객체지향언어란?

오늘 주제는 객제지향언어에 대해서 이야기 해볼까 합니다.
객체지향언어라.. 이거 알면 알수록 골이 땡길수도 있습니다. ^^;
저 역시 안다고는 장담은 못하겠네요. 그래도 열심히 아는데 까지 설명을 해보려 합니다.

객체지향언어니까 일단 객체에 대해서 알아볼까요?

객체(客體)
 [명사]
1 <법률> 의사나 행위가 미치는 대상. ≒물격(物格).
2 <언론> 문장 내에서 동사의 행위가 미치는 대상.
3 <철학> 작용의 대상이 되는 쪽. ≒교체(僑體).

사전적 의미는 저렇습니다. 일단 사전적으로 객체란 대상이 되는 것 같군요.
대상이라면 어떤 내용의 대상이겠죠? 어떤 내용을 가지고 있다면 대표가 될만한 것이고
그렇다면 글에서는 주제가 되겠네요?

그럼 이해를 쉽게 하기 위해 예를 들어봅시다.

홍길동전이라는 우리 고전문학이 있죠?

홍길동전 이라는 제목은 그 책에 내용을 대표하지만 내용을 모르는 사람은
홍길동전을 물으면 홍길동전? 이라면서 모르겠죠? 내용을 모른다는것은 내용이 없다고
생각해봅시다. 그럼 이번엔 책을 읽고 내용을 안다고 생각해봅시다.
그럼 홍길동전은 이제 아는 내용이기 때문에 홍길동전이라는 얘기만 들어도
잘 알겠죠? 설명이 조금 어려운건지도 모르겠지만 간단하게 줄여봅시다.

홍길동전은 제목입니다. 책의 재목은 내용이 없으면 가치가 없겠죠?
아무것도 없다는 뜻이 됩니다. 이걸 프로그래밍에서 말하는 객체라고 생각해봅시다.

그렇다면! 객체란 내용이 없다면 아무 것도 아니다. 라는 것이 되겠지요.
이 말은 객체란 내용이 없으면 아무것도 할 수가 없는 존재입니다.
그러나 내용없는 객체가 어디에 있겠습니까?
더 정확히 말하자면 내용없는 객체를 만들 사람은 없겠죠~

음 그럼 실제로 소스를 예로 들어봅시다.

new InputStreamReader(System.in)

위 소스는 낯이 익죠? 자바에서 표준입력을 받아들이는 소스의 일부분입니다.
저것을 생성자 라고도 하는데 일단 쉽게 가도록 하겠습니다.
위에 소스가 일부분이기 때문에 이번엔 전체를 보고 이야기 합시다.

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

좀 부담스럽겠죠? 그러나 지금은 객체를 설명하기 위함이니 부담을 갖지 맙시다. ㅎㅎ

Buffer... << 첫문자만 봐도 클래스라는 것을 알수가 있습니다.
클래스는 객체를 만드는 틀이라고 생각합시다.
제일 오른쪽에서 부터 왼쪽으로 해석을 합시다. 실제로도 오른쪽에 내용이
왼쪽으로 다듬어지면서(연산) 최종적으로 br에 넣어지게 되니까요 ~

그럼 오른쪽에 내용들은 하는 일이 정해진 거죠? 책으로 치면 내용입니다.
그럼 왼쪽에 것이 책의 제목인 객체가 되겠네요? 여기서 눈치가 빠르다면
변수가 객체라는 것을 의심할겁니다.

또 헤깔려서 공황상태를 초래할 수 있는 분도 있으므로 더 쉽게

클래스는 객체의 틀인데 객체라는 놈이 변수래요~ 그리고 위에서 설명한 생성자가 내용이래요 ~

그러니까 결국 객체는 내용을 갖고 있어 그 내용이 있어서 존재의 가치가 있는 것이고 하는 일도 있는것이죠.
이게 바로 객체지향언어라는 것입니다. 객체를 지향한다는 것이지요 ㅎㅎ
그래서 특징이 소스의 한 라인만 봐도 내용을 짐작하기가 쉽죠.

이정도면 객체지향언어라는 것에 한걸음 더 다가갈수 있겠죠^^? 

그리고 객체에 담아지는 내용들은 캡슐화 된다고도 하네요. 이 부분에 대해서 제가 이해한 것은
우리가 흔히 자료를 가공하면 정보가 된다고 하죠? 그것처럼
오른쪽에서 왼쪽으로 내용이 전달되면서 최종적으로 변수(객체)에 내용이 넣어(대입)지는
과정이 캡슐화 되는 과정이라 합니다.

하하 이번에도 이렇게 쉬운 글로 끝이 나네요. 요새 글을 쓰면서 뭔가 좀 날로 쓰는 듯한 기분이 듭니다.
프로젝트 준비도 해야 하고 하는데 열심히 해야겠죠? ㅎㅎ
그럼 여기서 줄이겠습니다.

캄사합니다 ~ ^^;

이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by 만성피로 | 2008/03/30 23:13 | 정리할 자료들 | 트랙백 | 덧글(1)

트랙백 주소 : http://maydaisy.egloos.com/tb/197236
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by 김교수 at 2008/03/31 19:34
캡슐화는 객체에 포함되어 있는 변수(멤버변수라고함)들을 (private로 선언하여)다른 클래스에서 직접 읽거나 설정하지 못하고 반드시 그 객체의 메소드를 이용해서 접근하도록 하고 있는 특성을 말합니다. 이렇게 하기 위해서 이용하게 되는 메소드는 public으로 선언되어야 합니다. 나중에 클래스를 배울 때 더 자세하게 얘기해 보도록 하죠~ 언제나 열심인 만성피로군, 거침없이 화이팅~

:         :

:

비공개 덧글

◀ 이전 페이지다음 페이지 ▶