객체 지향 프로그래밍이란 2편 -객체는 무엇인가-

1. 객체(object)

 

- 클래스에서 정의한 것을 토대로 메모리(실제 저장공간)에 할당된 것으로 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간을 의미하며 변수, 자료구조, 함수 또는 메소드가 될 수 있다

 

- 객체는 속성(attribute)과 행동(method)으로 구성된 모든 것

 

- 속성은 변수로 나타내고 행동은 함수로 나타내는데 특별히 class에서는 행동을 method라고 부른다

 

예시)

 

가수 태연이라는 존재를 프로그래밍 세계로 옮긴다면?

 

노래(),  댄스()  <행동>

 

직업: 가수, 생년월일: 1989년 3월 9일, 국적: 대한민국 <속성>

-----------------------------------------------------------------------------------

 

태연.노래() :만약에~ 내가 간다면~

 

태연.직업 : 가수

 

 

2. 클래스와 객체

 

클래스는 하나의 설계도이고 이러한 설계도로 실제로 만든 것이 객체

 

클래스가 바로 파이썬에서 그동안 봐왔던 type

 

 

 

'가수'라는 클래스<추상적인 상징물>로 만들어진 실제 존재물이 '태연'<실존하는 인물>이라는 객체

 

'강아지'라는 클래스<추상물>로 만들어진 실제 존재물이 '리트리버'<실제 존재>라는 객체

 

마치 붕어빵 틀로 실제 붕어빵을 만들듯이 붕어빵 틀이 클래스, 만들어진 붕어빵이 객체

 

3. 객체와 인스턴스(instance)

 

클래스로 만든 객체를 인스턴스라고도 함

 

객체와 인스턴스는 무슨 차이?

 

어떤 클래스의 객체라고 명확히 표현하는 것이 인스턴스

 

객체는 조금 더 일반적인 표현

 

근데 혼용해서 보통 쓴다

 

'태연'은 객체다(o)

 

'태연'은 인스턴스다(x)

 

'태연'은 가수의 인스턴스다(o)

 

 

4. 파이썬의 특징

 

'파이썬의 모든 것은 객체이다'

 

파이썬의 모든 것에는 속성과 행동이 존재함

 

type = class.. 파이썬의 모든 것에는 타입(type)이 존재한다

 

객체.행동()..으로 정보를 얻거나 행동을 시키는

 

 

하나의 클래스인 리스트의 객체 [3,2,1]이 .sort()라는 정렬 행동을 하면 정렬된 [1,2,3]이 나오는

 

객체 [3,2,1]에서 [3,2,1][0]을 하면 하나의 정보 3이 나오는

 

문자열은 iterable이고 immutable이고.. 이런 정보들이 문자열 class에 전부 정의되어 있는

 

행동으로 upper()이 대문자로 만들어주는 그런 것도 정의되어있고

 

--------------------------------------------------------------------------------

 

모든 클래스와 객체는.. 하나의 타입과 실제사례들이 존재

 

 

 

실제 사례인 객체 [1,2,3],...,[],...,['hi']등을 만들기 위한 클래스가 list였다 이 말

 

객체는 특정한 타입(type)의 인스턴스(instance)

 

 

 

리스트의 행동? .sort() 등등

 

문자열의 행동? .upper() 등등

 

 

5. 객체의 특징??

 

객체는 속성(attribute)과 행동(method)로 이루어져있는 것

 

타입(type): 어떤 연산자(type)와 조작(method)이 가능한가?

 

>>문자열 + 문자열과 숫자 + 숫자는 서로 다르게 동작함

>> 기본적으로 정의된게 있지만 +를 내가 다르게 정의할 수도 있다

 

속성(attribute): 어떤 상태(=데이터,정보)를 가지는가?

 

조작(method): 어떤 행위(함수)를 할 수 있는가

 

 

 

 

TAGS.

Comments