OOP, 객체지향 프로그래밍

원태연·2022년 1월 3일
0

객체지향 프로그래밍

(Object-Oriented-Programming)

절차적 프로그래밍에서 함수를 활용하여 모듈화하여 사용하는 경우가 많다. 만약 자판기에 존재하는 콜라에 대한 함수를 구현한다면 콜라라는 자료형, 콜라에 대한 함수(가격, 수량, 맛 등등)가 필요할 것이다. 하지만 절차적 프로그래밍은 이 둘을 논리적으로 묶을 수 없다.

객체지향 프로그래밍은 위처럼 데이터와 데이터에에 대한 함수를 함께 묶어 '객체'라는 형태를 사용한다.

핵심은 객체 내부에 자료형 필드와 함수가 함께 존재한다는 것이다.

위 콜라라는 객체를 생성하면,

public class Coke{
  int price;
  int quantity;
  String taste;
  
  public void sell(){
  }
  
  public void fill(){
  }
}

콜라의 맛, 가격, 수량, 유통기한 같은 필드값과 팔기, 자판기에 채우기 등의 메소드들을 묶어 관리가 가능해진다.

이러한 객체를 생성함에 따라 객체간의 독립성이 뚜렷하게 생기고, 중독되는 코드의 양이 줄어든다.

OOP의 키워드

  • Object(객체) : 해당 클래스를 기반을 생성된 인스턴스 모두

    Coke cokaCola = new Coke()

    Coke pepsi = new Coke()

  • class(클래스) : 해당 객체의 필드값과 메서드가 정의 되어 있는 코드 블럭

    public class Coke{}

  • attribute(필드값) : 해당 객체가 가진 변수 값

    int price, int quantity, String taste

  • method(메서드) : 해당 객체를가 가진 함수(기능 수행)

    public void sell(), public void fill()

프로그램에 대한 시각이 데이터의 흐름이 아닌, 독립되어있는 객체, 데이터 자체에 중점을 두었다.

객체지향의 장단점

  • 장점
  1. 코드의 재사용성이 높다
  2. 유지보수에 용이하다
  3. 코드의 가독성이 높아진다
  4. 복잡하고 규모가 큰 대형 프로젝트에 적합하다
  • 단점
  1. 처리속도가 비교적 느리다
  2. 객체가 용량을 많이 차지할 수 있다
  3. 설계시 시간과 비용이 많이 든다.
profile
앞으로 넘어지기

0개의 댓글