Language

객체지향프로그래밍

ej503 2023. 1. 7. 13:19

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

 

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

 

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

 

객체지향프로그래밍은 크게 추상화 , 캡슐화 , 상속 , 다형성 의 네가지 특징을 가진다.


1. 추상화

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

 

추상화가 왜 필요할까?

  • 다른 곳의 코드를 수정할 필요 없이 추가로 만들 부분만 새로 생성해주면 된다.


2. 캡슐화

  • 변수와 함수를 하나로 묶는 것
  • 낮은 결합도를 유지할 수 있도록 설계하는 것

속성과 기능을 정의하는 변수와 메소드를 클래스라는 캡슐에 넣어서 분류하는 것으로 정보은닉을 활용 할 수도 있다.

 

3. 상속

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

 

4. 다형성

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

 

오버라이딩

  • 상위 클래스가 가지고 있는 메소드를 하위 클래스가 재정의해서 사용하는 것

 

오버로딩

  • 같은 이름의 메소드가 인자의 개수나 자료형에 따라 다른 기능을 하는 것

 

객체 지향 프로그래밍과 절차 지향 프로그래밍은 반대이다?


객체 지향 프로그래밍은 절차 지향 프로그래밍과 다르다고 생각하는 경우도 있다. 하지만 절차지향은 순차적으로 실행에 초점이 되어있고 객체지향은 관계/조직에 초점을 맞추고 있다는 초점의 차이일 뿐이다.



참고한 사이트

 

OOP explaination

[Python] OOP Understanding