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): 어떤 행위(함수)를 할 수 있는가

'프로그래밍 > Python' 카테고리의 다른 글
객체지향프로그래밍이란 4편 - method에 대한 모든것- (0) | 2022.07.31 |
---|---|
객체지향프로그래밍이란 3편 -class를 생성하는 방법과 attribute의 모든 것- (0) | 2022.07.30 |
객체지향 프로그래밍이란 1편 -정의와 왜 필요한지?- (0) | 2022.07.30 |
파이썬이 변수에 값을 저장하는 방법은? (0) | 2022.07.27 |
파이썬에서 가상환경 만드는 방법? (0) | 2022.07.26 |