객체지향프로그래밍

김효성·2022년 12월 4일
0

CS 공부일지

목록 보기
14/15

기존에 작성했던 OOP을 객체지향프로그래밍이라고 한다. (Object-Oriented Programming, OOP)

객체지향프로그래밍이란?

객체지향프로그래밍은 프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고, 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.

  • 객체란?
    : 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간을 의미하며 값을 저장 할 변수 와 작업을 수행 할 메소드를 연관된 것들끼리 묶어서 만든 것을 객체라고 할 수 있다.

객체지향프로그래밍을 레고에 빗대 표현 할 수 있는데, 객체가 레고의 조각이 될 것이고 레고의 조각을 조립해서 무언가를 만드는 방식이 객체지향 프로그래밍이라고 할 수 있다.

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

크게 추상화, 캡슐화, 상속, 다형성 의 네가지 특징을 가진다.

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

    추상화가 필요한 이유
    : 예를 들어 추상화로 자동차를 구현해 두면 다른 곳의 코드

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

    속성과 기능을 정의하는 변수와 메소드를 클래스라는 캡슐에 넣어서 분류하는 것으로 재활용이 원활하다는 장점

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

    장점
    : 재사용으로 인한 코드가 줄어든다, 범용적인 사용이 가능하다, 자료와 메서드의 자유로운 사용 및 추가가 가능하다.

    단점
    : 상위클래스의 변경이 어려워진다, 불필요한 클래스가 증가 할 수 있다, 상속이 잘못 사용될 수 있다

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

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

profile
인생은 단방향 디자인 패턴 🏃

0개의 댓글