세찬 바람이 부는 칼날 능선에 서면
인생은 바람이다.

혼자 공부하는 프로그래밍

혼공 6주차 선택 미션(객체, 클래스, 인스턴스, 생성자, 메소드)

갈뫼 2020. 8. 2. 10:37

* 객체(object)

  - 여러가지 속성을 가질 수 있는 대상. (속성 + 행위로 표현 가능)

     . 객체 : 학생

     . 속성 : 이름, 키, 나이, 생년월일, 몸무게, 성격, 눈크기, 코크기 ......

     . 추상화(abstraction) : 속성 중에서 필요한 요소만을 골라 객체를 표현, 복잡한 자료, 모듈, 시스템으로부터 핵심적인

                                  기능을 간추려 내는 것.

* 클래스(class)

- 객체의 변수와 함수를 정의한 객체의 설계도. (속성과 행위를 합친 객체를 생성하기 위한 구문)

     . 클래스 선언

          class Student: # 앞 글자를 대문자로 선언(Camal case)하면 클래스로 구분한다.

           속성

           행위

* 인스턴스(instance)

- 클래스를 기반으로 만들어진 객체. (실체화 된 객체)

     . 인스턴스 선언

     student = Student() # 생성자 함수, 인스턴스는 소문자 s, 클래스 이름은 대문자 S 임에 유의.

     (인스턴스) (클래스이름)

* 함수프로그램과 객체지향 프로그램 차이점

- 함수 프로그램 : 동사 + 목적어로 된 명령어,  print(이름,점수)

- 객체지향 프로그램 : 주어가 행위를 하는 주어 + 동사 + 목적어 형태. Student.print()

* 생성자(constructor)

- 클래스 이름과 같은 함수. _ _init_ _ 라는 함수를 만들어 객체 생성.

class Student:

   def _ _init_ _(self, name):

       self.name = name

 

Student("김새롬") # name 속성에 "김새롬" 문자열을 저장.

* 메소드(method), 멤버함수, 인스턴스함수

- 클래스가 가지고 있는 함수. 생성자 함수와 마찬가지로 첫번째 매개변수로 self를 넣어야 합니다.

  파이썬 프로그래밍 언어에서는 멤버 함수, 인스턴스 함수라는 용어로 많이 사용합니다.

def 함수이름(self, 추가매개변수):