JAMONGPROJECT

[DAY13] 클래스 본문

Challenge/FASTCAMPUS 30일 챌린지

[DAY13] 클래스

JAMONGPROJECT 2023. 3. 4. 16:25


3 객체지향과 절차지향

 

객체지향과 절차지향

 

절차지향(구조적 프로그래밍) : 데이터 구조와 그 데이터를 변화 시키는 알고리즘으로 구성

객체지향 : 객체들이 메시지를 통하여 통신함으로써 원하는 결과를 얻는다.

각 객체는 고유의 데이터와 데이터를 처리할 수 있는 메소드로 구성

 

More about 객체 지향

 

객체 지향 프로그래밍(영어: Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍의 패러다임 중 하나이다. 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. 또한 프로그래밍을 더 배우기 쉽게 하고 소프트웨어 개발과 보수를 간편하게 하며, 보다 직관적인 코드 분석을 가능하게 하는 장점을 갖고 있다. 그러나 지나친 프로그램의 객체화 경향은 실제 세계의 모습을 그대로 반영하지 못한다는 비판을 받기도 한다.

 

사실 python은 모든 것이 객체이다.

이전에 보았던 string이나 list 또한 객체이다.

‘abcd’.upper() 이라는 호출을 통해 대문자로 바꾸었던 것을 기억하는가?

 

4 특수 메소드

 

생성자와 소멸자

 

생성자: **init**()
객체가 생성된 후 가장 먼저 호출되는 메소드
첫번째 매개변수는 self이며 이후에 매개변수 추가 가능
주로 멤버 변수의 초기화 코드로 작성


소멸자: **del**()
객체가 소멸될 때 호출되는 메소드
외부 자원을 사용하는 경우 해제하는 코드를 주로 작성
self 이외의 매개변수를 받지 않음

- del 객체이름 을 입력하면 삭제할 수 있다.

 

정적 메소드

 

@staticmethod 데코레이터로 수식
인스턴스를 생성하지 않고 클래스를 이용해서 직접 호출할 수 있는 메소드
메소드 내에서 멤버 변수를 호출할 수 없고, self 매개변수도 사용하지 않습니다.

class 클래스이름:
  @staticmethod
  def 메소드이름(매개변수):
    실행문장

 

클래스 메소드

@classmethod 데코레이터로 수식
정적 메소드와 유사하지만, 첫 번째 변수로 클래스 객체가 전달되는 것이 다름.
cls 매개변수 사용

 

예제 


class 클래스이름:
  @classmethod
  def 메소드이름(cls):
    실행문장

class student:
  count=0
  @classmethod
  def cmethod(cls):
    print("클래스 메소드")
    print(cls.count)

 

  @staticmethod
  def smethod():
    print("정적 메소드")
student.cmethod()
student.smethod()

 

심화학습 : private, public 변수

 

Private 멤버는 내부에서는 접근이 가능하지만 클래스 외부에서 접근이 안 되는 멤버.
Public 멤버는 클래스 외부에서 접근이 가능한 멤버
python의 경우 기본적으로 모든 멤버는 public

 

예제

 

변수 이름 앞에 __를 붙여주면 은닉할 수 있고 setter를 통해 값을 바꿀 수 있으며 getter를 통해 값을
불러올 수 있다.

 

class human:
  def __init__(self):
    self.__age = 31
  @property
  def age_getter(self): #getter
    return self.__age
  @age_getter.setter
  def age_setter(self, value): #setter
    self.__age = value

 


 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

http://bit.ly/3Y34pE0

 

#패스트캠퍼스 #패캠챌린지 #수강료0원챌린지 #환급챌린지 #직장인인강 #직장인자기계발
#패캠인강후기 #패스트캠퍼스후기 #오공완

#한번에끝내는컴퓨터공학전공필수&인공지능심화초격차패키지Online

'Challenge > FASTCAMPUS 30일 챌린지' 카테고리의 다른 글

[DAY15] 상속과 예외처리  (0) 2023.03.06
[DAY14] 상속과 예외처리  (0) 2023.03.05
[DAY12] 클래스  (0) 2023.03.03
[DAY11] 클래스  (0) 2023.03.02
[DAY10] 함수 심화학습  (0) 2023.03.01
Comments