객체 지향 프로그래밍(OOP)와 주요개념 4가지

백돼지·2023년 3월 15일
0
post-thumbnail

객체 지향 프로그래밍(Object-Oriented Programming : OOP) 이란?

  • 객체 지향 프로그래밍은 프로그래밍 패러다임 중 하나로,
    데이터와 이를 처리하는 동작을 하나로 묶어서 객체라는 단위로 관리하고,
    이러한 객체들의 상호작용으로 프로그램을 구성하는 방식이다.

  • 객체는 상태와 행위를 가지며, 각 객체는 독립적으로 존재하며 다른 객체와 상호작용한다.
    이러한 방식으로 프로그램을 작성하면 코드의 재사용성과 유지보수성이 높아지는 장점이 있다.

OOP에는 주요 개념 4가지가 있는데,
캡슐화(Encapsulation), 추상화(Abstraction), 상속(Inheritance), 다형성(Polymorphism)으로 구성 되어 있다.

1. 캡슐화

캡슐화의 주 개념의 초점은 은닉화에 맞춰져 있다.
코드를 구현하는 세부 방식들은 모두 숨기고,
코드를 실행하는 부분만 노출을 시키는 것이다.

그럼 객체의 상태를 외부에서 직접 접근 할 수 없도록 하고,
지정해 둔 메소드를 통해서만 상태를 변경 할 수 있도록 하는 것이다.

이렇듯 하나의 객체안에 속성과 메소드를 묶어두면,
코드만 보고도 객체의 기능을 상상 할 수 있기에 유지 보수에 매우 능하다.

2. 추상화

추상화는 캡슐화와 비슷하지만,
추상화의 주 개념은 인터페이스를 단순하게 하여
너무 많은 기능들이 노출되지 않게 하여 예기치 못한 변화를 일으키지 않도록 하는 것이다.

3. 상속

상속은 부모 클래스가 가지고 있는 속성과 메소드를
자식 클래스가 물려 받아 사용 할 수 있도록 하는 것이다.

예를 들어, 사람이라는 클래스에 name, age, height등의 속성이 있다면,
학생이라는 클래스를 만들 때 이 사람 클래스를 그대로 물려받아,
(학생은 어차피 사람이니까)
코드의 재사용성과 유지보수성을 높일 수 있다.

4. 다형성

다형성은 동일한 메소드가 서로 다른 클래스에서 다르게 구현 될 수 있도록 하는 것이다.

예를 들어,
도형 클래스를 상속받은 삼각형 클래스와 사각형 클래스가 있다고 가정해보자. 이때, 도형 클래스에는 getArea() 메서드가 있으며 삼각형 클래스와 사각형 클래스는 이 메서드를 각자 다르게 구현하고 있다.

이때, 어떤 함수에서 도형 객체를 매개변수로 받아서 getArea() 메서드를 호출하면, 이 함수는 도형 객체가 삼각형 객체인지 사각형 객체인지 구분하지 않고 getArea() 메서드를 호출할 수 있다. 이렇게 여러 클래스가 동일한 메서드를 가지고 있지만 각자 다른 방식으로 구현할 수 있는 것을 다형성이라고 할 수 있다.

profile
용호의 코딩블로그 22.11 코딩공부 시작 23.2 부트캠프 입소

0개의 댓글