ProgrammingLang/python

[python] 16. class 와 객체

jinkwon.kim 2018. 11. 21. 22:12
728x90
반응형

[python] 16. class 와 객체




1. 객체지향 프로그램이란??

  - 프로그래밍 패러다임이다.

  - 프로그램을 모두 객체 단위로 만들고, 객체 관계로 설계, 객체간 서로 상호작용을 통해 

    프로그램을 동작하게 하는 것이 객체지향 프로그램이다.


2. class의 구조?

  - 멤버 변수와 method 으로 구성 된다

    * 멤버 변수를 attribue, 또는filed라고도 부른다.

    * method를 함수라고도 부른다.

  - 특히, method는 멤버 변수를 다루는 method만 정의 되어야 한다.


2. 클래스의 문법

  1) class의 문법

    - class 키워드로 시작됨

    - class 키워드 다음에 class 이름이 위치

    - class 이름위에 ()괄호 속에 상속된 클래스 이름이 위치


  2) class의 특징

    - python의 object class의 기능과 속성을 기본적으로 모두 상속 받는다. 

  3) class Naming Convention(class 이름 규칙)

    - 사용자가 작성한 class는 대문자로 시작하게 이름을 짓는다. 

    - class이름이 2단어 이상으로 이루어지면 각 첫단어의 첫 알파벳은 대문자여야 한다.

(pascal 표기법을 따른다)

 


3. 클래스의 구성

  1) 생성자

    - 함수 모양을 가진다. 

    - __init__(self) 라고 이름을 갖는다.

    - 생성자에서 아무런 역활을 하지 않을시에 pass를 넣어준다.

      Ex) def __init__ (self):

  pass

    - 생서자 함수는 self 파라미터 이외에 여러개의 파라미터를 더 받을수 있다. 

  Ex) def __init__ (self, name, age):

  

  2) 멤버 변수 

    - 따로 선언을 하지 않는다. 

    - self.변수명 을 통해서 바로 생성이된다. 

EX) self.name = 'do it now man' 

    이라고 하면 name이란 멤버변수가 생성된 것이다.

  

  3) 메소드

    - 구조는 함수 생성이랑 동일 하다.

    - 파라미터로 self를 꼭 넣어주야한다.

    - 메소드에서 멤버 변수를 사용하기 위해서는 self 키워를 사용한다. 

Ex) def descript(self):

      print("method called %s" % self.name) 



4. class를 이용하여 객체를 만드는 방법

  1) class를 객체로 만들려면 class명에 ()를 붙여주어 변수에 할당하면 된다.

      그러게 되면 이 변수는 객체가되는 것이다

      EX) 

class Student:
def __init__(self, name, age):
self.name = name
self.age = age


smart_student = Student('do it now man', 32)

  2) class의 멤버 변수를 사용하는 방법 

    - "객체명.멤버변수명" 으로사용하면된다. 

Ex) 

class Student:
def __init__(self, name, age):
self.name = name
self.age = age


smart_student = Student('do it now man', 32)

print("smart student name %s and age %d " % (smart_student.name, smart_student.age))

  

5.class 상속(Inheritance)

  - class의 재사용을 위한 방법 이다.

  - 부모로 class의 모든 속성(데이터, 메소드)를 자식 class로 물려 줄수 있다.

    그러나 모든 것을 물려주는 것은 아니다.

    * 변수와 메소드만 상속 받는다.

    * 생성자를 상속받지 않는다.

  - python의 모든 클래스는 object(root class이다)를 기본으로 상속 받는다.

    그래서 object는 생략이 가능하다.

  - 상속 받은 부모 class의 멤버 변수 세팅 방법

    명시적으로 부모class를 사용해야한다.

    Ex) 부모class명.멤버 변수


6. Override(덮어쓰기)

  - 상속된 부모class의 메소드나 속성을 재정의하는 행위

  - 이름이 동일하면 overriding이된다.

  







728x90
반응형