1. 두 함수의 차이는?

def print_string(data):
    print (data)

print_string("Fun Coding 객체지향 프로그래밍")
Fun Coding 객체지향 프로그래밍
string = "객체지향 프로그래밍" # 문자열 관련 설계도 있음 - 해당 설계도 기반 문자열1 객체가 만들어짐
string.split() # 해당 문자열1 객체가 가지고 있는 split 메서드 호출(method)
['객체지향', '프로그래밍']

2. 객체지향 프로그래밍(Object Oriented Programming)

절차지향과 객체지향 프로그래밍

  • 절차지향 프로그래밍

    • 1990년대 이전 언어는 대부분 절차지향 프로그래밍

      • 대표적인 언어: 파스칼, 코볼, 포트란, C언어등
    • 예: 냉장고에 코끼리2를 넣는다.

data = 1
print(data) #절차적으로 순서대로 실행된다. 절차지향 프로그래밍
1
  1. 코끼리라는 사물의 기능, 정보에 대한 설계도를 만든다.

  2. 이 설계도를 기반으로 코끼리1 객체를 만듭니다.

  3. 냉장고라는 사물의 기능, 정보에 대한 설계도를 만든다.

  4. 이 설계도를 기반으로 냉장고1 객체를 만듭니다.

  5. 코끼리1 의 객체의 기능을 호출해서, 냉장고1 의 객체의 문을 연다.

  6. 코끼리1 의 객체의 기능을 호출해서, 냉장고1 의 객체안으로 들어간다.

  7. 냉장고1 의 객체의 기능을 호출해서, 냉장고1 의 객체의 문을 닫는다.

  8. 해당 사물을 나타낼 수 있는 설계도를 만든다. (class)

  9. 해당 사물의 설계도를 기반으로 사물1 객체를 만든다. (object)

  10. 사물1 객체의 기능을 호출한다.

    • attribute: 사물1 객체의 변수

    • method: 사물1 객체의 함수

사물1객체의이름.method이름(인자)


객체지향 프로그래밍 언어: JAVA, C++

파이썬: 객체지향(내부), 객체지향 문법(지원)

  • 객체지향 프로그래밍

    • 객체(object) 단위로 데이터와 기능(함수)를 하나로 묶어서 쓰는 언어

객체지향 프로그래밍 핵심 (class와 object)

class 란? == 예) 자동차 설계도

  • 속성(attribute)동작(method)을 갖는 데이터 타입

  • 속성(attribute)변수와 유사

  • 동작(method)함수와 유사

정리: class(설계도), object(객체), attribute(변수), method(함수)

object 란? == 예) 실제 각 자동차

  • 선언된 클래스를 기반으로 만들어진 실체 (객체(object) 또는 인스턴스(instance)라고 함)

  • 하나의 클래스 설계도를 기반으로 수많은 객체 생성이 가능함

객체지향 프로그램 작성 방법

  1. 클래스 설계 (attribute와 method 구성)

  2. 설계한 클래스를 기반으로 클래스를 코드로 작성

  3. 클래스를 기반으로 필요한 객체 생성

  4. 해당 객체의 attribute와 method를 조작하여 프로그램 수행