티스토리 뷰

어떤 객체의 속성이나 기능이 상황에 따라 여러 가지 형태를 가질 수 있는 성질

OOP란?


  • 객체지향 프로그래밍(Object Oriented Programming)의 약자. 클래스에서 주로 사용되는 개념이다.
  • 기존의 절차 지향에서 벗어나 프로그램을 여러 독립적인 부품들의 조합, 즉 객체들의 유기적인 협력과 결합으로 파악하고자 하는 컴퓨터 프로그래밍의 패러다임을 의미한다.
  • OOP는  코드의 재사용하고 최대한 간결하게 표현하여 코드의 변경과 반복를 최소화하고, 유지보수를 하는 데 유리하다는 장점이 있다.
  • OOP는 추상화, 상속, 다형성, 캡슐화라는 4가지 특징을 보유하고 있다

 

 

1.캡슐화


  • 캡슐화는 클래스 안에 서로 연관있는 속성과 기능들을 객체안에 담아서 하나의 캡슐로 만드는 것을 의미한다. 
  • 캡슐화는 외부로부터 클래스에 정의된 속성과 기능들을 접근을 방지하는 데이터 보호를 위해 사용한다.
  • 또한 은닉화를 통해 내부 데이터나 내부 구현이 숨기고 외부에는 필요한 부분만 노출하게 하는 것도 사용 이유이다.
  • 데이터 보호와 은닉화로 객체 고유의 독립성과 책임 영역을 안전하게 지키고자 하는 것이 주요 목적이다.

 

2.추상화


  • 함수나 클래스의 복잡한 내부 구현을 숨기고, 실제로 노출되는 외부은 단순하게 만들어서 사용한다는 개념.
  • 노출된 외부 부분을 인터페이스라고 하며, 사용자가 내부 동작 원리는 몰라도 인터페이스만 알면 사용가능하게 만드는 역할을 수행
  • 클래스에서는 정의시 메서드와 속성만 정의한 것을 인터페이스라 부른다
  • 이런 추상화는 내부 기능들의 노출를 최소화하여 예기치 못한 사용상의 변화를 방지한다.
  •  코드나 데이터의 은닉과 보호가 목적인 캡슐화와의 차이점으로는 추상화는 내부를 노출시키지 않고, 단순한 이름으로 정의하는 것에 포커스가 맞춰있다.

 

 

상속


  • 부모 클래스의 함수나 속성을 자식 클래스가 물려받는 것을 의미한다.
  • 주로 공통된 속성과 함수를 가진 기본 클래스를 정의하고, 세부사항이 다른 자식 클래스가 부모의 속성과 함수를 사용하게 함으로써  반복적인 코드를 최소화하고 공유하는 속성과 기능에 간편하게 접근

 

다형성


  • 어떤 객체의 속성이나 기능이 상황에 따라 여러 가지 형태를 가질 수 있는 성질을 의미한다.
  • 같은 함수를 사용하지만 결과값이 다를 때, 사용한다.
  • 대표적인 예가 오버라이딩으로, 부모 클래스에서 물려받은 함수를 자식에게 적합한 형태로 변형시키는 것이다.
  • 부모에게서 물려받는 점에서는 상속과 비슷하지만, 상속은 자식들의 공통된 속성과 함수를 물려주는 것이고 다형성은 공통된 함수에서 자식만의 특징을 표현하는 것이라는 차이점을 알 수 있다.

 

'컴퓨터 공학 및 알고리즘' 카테고리의 다른 글

네트워크  (0) 2023.05.01
재업) 스코프와 클로저  (0) 2023.04.24
UI/UX  (1) 2023.04.13
재귀  (0) 2023.04.11
CLI 명령어  (1) 2023.02.24
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함