객체지향프로그램이란

객체지향 프로그래밍 정의:

객체지향 프로그래밍 (Obgected-Oriented Programming, OOP):

컴퓨터 프로그래밍 = ~~명령어의 목록~~ -> '객체'들의 모임

장점:

  • 각각의 객체들끼리 메시지를 주고 받고 데이터를 처리할 수 있다. -> 프로그램을 유연하고 변경이 용이
  • 소프트웨어 개발 및 보수가 간편하다
  • 직관적인 코드 분석을 가능하게 한다.

구성요소:

  • 클래스(Class)
  • 객체(Object)≒ 클래스 (클래스의 인스턴스, 즉 메모리상에 할당된 것)
  • 메서드(Method)≒오퍼레이션(기능), 메시지(Message)
  • 속성(attribute)≒ 변수(variables)

객체지향 원리 4가지

추상화(Abstraction):

객체 표현에 핵심적 필요사항(속성, 메서드)에만 집중하고 그 외에 대해서는 생략
  • 간결성(simplicity), 표현성(expressiveness)
  • 동일한 객체도 문제 상황에 따라 추상화 관점이 달라짐

캡슐화(Encapsulation):

객체의 속성과 메서드를 외부에 공개할 것과 공개하지 않을 것을 지정하여 객체 구성요소를 보호
  • 중요한 데이터나 행위요소는 외부로부터의 접근을 막아 데이터나 오퍼레이션에 대한 손상을 방지
  • __ (underbar 2개)를 속성 명 앞에 붙여서 캡슐화를 시킨다.
    import random
    class Die:
    	def __init__(self):
     	self.__faceValue = random.randint(1,6)

상속성(Inheritance):

기존의 개발된 클래스를 이용하여 새로운 클래스를 정의할 수 있게 한다.
  • 클래스간의 'is-a'관계를 표현
  • 코드의 재사용성과 확장성을 높임

다형성(Polymorphism):

같은 클래스로부터 상속을 받는 하위 클래스들의 서로 다른 모습을 표현
  • 동일한 회부적인 특징을 가지는 객체들이 서로 다른 내부 구조를 가지는 것을 처리하기 위한 개념

좋은 웹페이지 즐겨찾기