티스토리 뷰

오늘은 객체지향 언어의 의미와 특징에 대해 알아 봐야겠다. 

 

객체 지향이란?

객체 지향이란 사람이 세상을 인식하는 하나의 방법론이다.

 

이는 '추상화' 능력과 관련이 깊다.

추상화 능력은 어떤 대상의 '공통점'을 추출해 그것을 하나의 대상을 인식하는 '틀'로 만드는 능력이다.

 

예를들면 

여러마리의 '개'가 있다. 각자의 모습과 특징이 있다.

사람은 위의 사진에 보이는 모든 동물을 '개'라고 한다. 하지만 개라고 해서 다 같은 것은 아니다.

만약 인간에게 '추상화 하는 능력'이 없었다면, 우리는 저 위에 있는 동물들 모두 전혀 다른 동물로 인식 할 것이다.

 

심지어 우리는 심장에 심각한 위협이 되는 이 포악한 녀석들도 모두 '개'라고 인식한다.

저 위에 있는 개들은 생김새도 다 다르고, 저마다의 특징이 있겠지만 우리 인간은 그 와중에도 '공통적 특징'을 찾아내어

그것을 굳이 정의한다. (발이 4개고, 털이 있고, 심장에 해롭고, 개 짖는 소리를 내고 등등)

 

이제 그러한 공통적인 특징을 지닌 무엇에 '개'라는 이름을 부여하게 되면, 이제 사람들은 1)발이 4개이고 2)털이있으며, 3)멍멍 소리를 내면서 4)심장에 해로운 녀석들을 모두 동일하게 '개'라고 인식할 수 있는 것이다.

 

만약에 일정부분 동일한 특징을 가지지만, 구별해야하는 다른 특징들이 있는 경우에는 더 큰 묶음으로 묶을 수도 있다.

개와 고양이는 4발이 달렸고 모두 심장건강에 좋지 않기 때문에 포유류라고 할 수 있다.

 

객체 지향 프로그래밍 이란?

객체 지향 프로그래밍은 위에서 언급한 '추상화'의 개념을 이용한 프로그램 방식이라고 생각해도 될 것같다.

새롭게 익혀야할 용어가 있는데 클래스(class) 와 객체(object)이다.

 

class와 object의 가장 큰 차이는 실제 존재여부이다. 이해가 어려울 수 있으니, 표로 정리해 보자.

Class (개념) '개' '고양이' '자동차' '치킨'
Object (실제) 옆집에 있는 개 길에서 만난 고양이 주차장에 있는 차 어제 저녘 먹은 치킨

즉, 클래스(class)라는 것은 내 앞에 있는 어떤 물건이 음식인지 아닌지를 구분 할 수 있는 '기준'과 같은 것이고

오브젝트(object)는 실제 존재하는 어떤 것이라고 생각하면 될 것같다.

 

추가적으로 몇가지 용어를 정리해보면, 클래스와 오브젝트는 다음과 같은 내용을 담고 있다. 

 

1. 속성(Attribute) = 기본 정보라고 생각하면 될 것 같다. 속성은 Data 타입/ Data 이름/ Data 값을 가진다.

   ex) 인간이 가지는 속성에는 키, 몸무게, 성별 등이 있을 수 있다.

 

2. 함수(function) = 수행 할 수 있는 특정한 기능, 행동을 뜻 한다.

   ex) 인간이 가지는 함수는 먹는다(밥), 잔다(), 걷는다(), 탄다(지하철) 등 이 있을 수 있다.

 

<아직 풀어서 설명 안한 부분>

※ 함수(Function) VS 메서드(Method)

  - 함수(Function)는 특정한 기능과 행동을 수행하는 모든 것을 지칭한다.

  - 메서드(Method)는 어떤 class안에서 동작하는 함수를 말한다. (메서드는 함수이다.)

  - 프로그램에서의 차이는 접근성에 있다. 메서드인 함수를 실행하려면 우선 class를 특정한 후 실행 해야 한다.

 

객체 지향 프로그래밍의 특징

1. 캡슐화(encapsulation) = class에 속성과 함수를 정의 할 수 있는 기능.

인간이 하는 추상화와 같다. 

 

2. 상속(inheritance) = 어떤 class의 특징을 다른 class가 물려 받도록 하는 기능

여기서 특징을 물려준 class가 부모, 물려 받은 class는 자식이라고 한다.

 

3. 다형성(polymorphism) = 부모에게 물려 받은 특징이 변할 수 있다. 

 

 

결론

1. 객체 지향은 인간이 세상을 인식하고 이해하는 하나의 방법이다. (feat, 추상화)

2. class는 특징(data, 함수)만 가진다. object는 class의 특징을 가진 실체이다.

   (옆집 누렁이가 개의 특징을 가진 실체인 것처럼)

3. 객체지향 프로그램 언어는 인간이 인식하는 것처럼 프로그래밍이 될 수 있도록 여러가지 특징을 지닌다.

 

 

   

728x90
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함