객체 지향 프로그래밍

MSKim·2023년 2월 23일
0

CS

목록 보기
8/13

Object-Oriented Programming

프로그램 구현에 필요한 객체를 파악하고 상태와 행위를 가진 객체로 만들고, 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법.

객체란?

프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간을 의미하며 값을 저장 할 변수와 작업을 수행 할 메서드를 서로 연관된 것들끼리 묶어서 만든 것.
Ex. 레고의 조각이 객체가 될 수 있고 이 조각들을 조립해서 무언가를 만드는 방식이 객체지향 프로그래밍이라고 할 수 있다.

객체 지향 프로그래밍의 특징

크게 추상화, 캡슐화, 상속, 다형성의 네가지 특징을 가지고 모듈 재사용으로 확장 및 유지보수가 용이하다.

추상화

  • 객체에서 공통된 속성과 행위를 추출 하는 것
  • 공통의 속성과 행위를 찾아서 타입을 정의하는 과정
  • 추상화는 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단하게 만드는 것

추상화가 왜 필요할까?

  • '현대'와 같은 다른 자동차 브랜드가 추가될 수도 있다. 이때 추상화로 '자동차'를 구현 해놓으면 다른 곳의 코드를 수정할 필요 없이 추가로 만들 부분만 새로 생성해 주면 된다.

캡슐화

  • 데이터 구조와 데이터를 다루는 방법들을 결합 시켜 묶는 것(변수와 함수를 하나로 묶는 것)
  • 낮은 결합도를 유지할 수 있도록 설계하는 것

상속

  • 클래스의 속성과 행위를 하위 클래스에 물려주거나 하위 클래스가 상위 클래스의 속성과 행위를 물려받는 것을 말한다.
  • 새로운 클래스가 기존의 클래스의 데이터와 연산을 이용할 수 있게 하는 기능

다형성

  • 하나의 변수명, 함수명이 상황에 따라 다른 의미로 해석 될 수 있는 것
  • 어떠한 요소에 여러 개념을 넣어 놓는 것

객체 지향 프로그래밍은 하나의 클래스 내부에 같은 이름의 행위를 여러개 정의하거나 상위 클래스의 행위를 하위 클래스에서 재정의하여 사용할 수 있기 때문에 다형성이라는 특징을 갖게 된다.

movie

profile
Today I Learned

0개의 댓글