Object Oriented Programming

양종하·2021년 8월 25일
0
post-thumbnail

Object Oriented Programming은 무엇인가

oop는 객체지향 프로그래밍의 약자로 "사람이 세계를 보고 이해하는 방법을 흉내낸 방법론 " 즉 다시 말해, 우리가 주변의 실세계에서 사물을 인지하는 방식을 프로그래밍에 접목하려는 사상을 의미한다.

객체지향 프로그래밍은 함수들의 집합 혹은 단순한 컴퓨터의 명령어들의 목록이라는 전통적인 절차지향 프로그래밍과는 다른, 관계성있는 객체들의 집합이라는 관점으로 접근하는 소프트웨어 디자인으로 볼 수 있다.

여기서 말하는 객체 란, 프로그램을 구성하는 각각의 요소들을 말하며
각 요소들인 객체를 유기적으로 연결하여 프로세스를 진행시키는 것이 클래스를 진행하면서 나오는 객체 지향 프로그래밍이라고 할수있다.

현업에서는 oop를 이용한 방법을 큰 프로젝트에 많이 사용하는데. 그 이유는 재사용성의 증가이다. 기존에 만들었던 내용을 쉽게 상속, 다형성 등을 이용해서 재사용 가능하기 때문이다.

oop의 4가지 특성

  1. 추상화 (Abstraction)

추상화란 공통의 속성이나 기능을 묶어 이름을 붙이는 것이다.
쉽게 예를 들자면 삼각형, 사각형, 원이라는 객체가 있을 때
이 객체들을 하나로 묶을 때 객체들의 공통 특징인 도형으로 묶어 이름을 붙이는 것을 추상화라고 한다.

구글링을 하면서 재미있는 예제를 찾아 보았는데 스타의 유닛을 추상화를 통해
class를 지정하고 class 안에 그 유닛의 hp , mp , 이름 등등.. 그유닛의 특징을 지정해 놓고 사용할수 있다라는 예시를 찾아 보았다.

2.다형성 (Polymorphism)

하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미한다.
상위 클래스의 참조 변수가 하위 클래스의 객체를 참조하게 하는 것이다
오버로딩, 오버라이딩, 업캐스팅, 다운캐스팅, 인터페이스, 추상메소드, 추상클래스 방법이 있다고 생각하면 된다.

3.캡슐화 (Encapsulation)

캡슐화란 쉽게 말하면 캡슐처럼 감싸는 개념이다.
객체의 변수, 메소드등 실제 구현 내용을 보이지 않게 감싸는 개념이다.
따라서, 외부 객체가 함부로 내부 객체를 건드리지 못하게 하는 것이다.
쉽게 예를 들자면 변수 앞에 private을 선언하는 것을 떠올리면 될 거 같다.

4.상속성 (Inheritance)

상위 클래스의 속성(변수)과 기능(메소드)을 (재사용하여(상속)) 하위 클래스가 전부 물려받는 것이다.물려받은 특징들 외에도 속성과 기능을 추가할 수 있다. call , apply를 통해 부모함수를 불러 this에 할당 가능하다.
상속에 대한 간단히 예를 들자면, 자동차라는 부모클래스가 있다.
기름을 먹거나 달리는 기능을 하는 자동차인데,
만약 지붕뚜껑이 열리는 특수한 기능을 추가하고 싶다면 기존의 자동차에서 스포차카를 생성한다.그러면 스포츠카는 기름도 먹고 달리면서 지붕두껑이 열리는 기능도 갖춘 자동차가 된다.

profile
내일이 더 즐거운 사람

0개의 댓글