본문 바로가기
  • 주니어 개발자의
    RESTful 성장기
Web/Java

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

by 돌건 2021. 3. 17.

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

  • 프로그램을 개발하는 기법으로, 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립하고 연결해 전체 프로그램을 완성하는 기법이다.

 

객체 지향 프로그래밍의 장점은?

  1. 코드의 재사용이 가능하다.
    • 한번 만든 클래스는 상속을 통해 확장할 수 있다.
  2. 유지보수가 쉽다.
    • 객체 지향 언어의 경우, 수정해야 하는 부분은 클래스 내부에 멤버 변수와 메소드에 존재하므로 유지보수를 하기 쉽다.

 

객체 지향 프로그래밍의 단점은?

  1. 객체가 많아질수록 프로그램의 용량이 커지게 된다.
  2. 상대적으로 처리 속도가 느리다.

 

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

  1. 캡슐화 (Encapsulation)
    • 객체의 필드, 메소드를 하나로 묶고, 실제 구현 내용을 감추는 것을 말한다.
    • 외부 객체는 객체 내부의 구조를 알지 못하며 객체가 노출해서 제공하는 필드와 메소드만 이용할 수 있다.
    • 외부의 잘못된 사용으로 인해 객체가 손상되지 않도록 하는 것이 목적이다.
    • 접근 제한자를 사용해 캡슐화된 멤버를 숨길 것인지 보여줄 것인지를 정한다.
  2. 정보 은닉 (Information Hiding)
    • 다른 객체에게 자신의 정보를 숨기고 자신의 메소드를 통해서만 접근을 허용하는 것.
  3. 추상화 (Abstraction)
    • 불필요한 부분은 생략하고, 객체의 속성 중 가장 중요한 것에만 중점을 두어 모델화하는 것.
  4. 상속 (Inheritance)
    • 정의된 부모 클래스의 모든 속성과 메소드를 상속 받은 클래스가 물려받는 것.
    • 상위 객체를 재사용해서 하위 객체를 쉽고 빨리 설계할 수 있도록 도와준다.
    • 이미 잘 개발된 객체를 재사용해 새로운 객체를 만들기 때문에 반복된 코드의 중복을 줄여준다.
    • extends
  5. 다형성 (Polymorphism)
    • 같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질을 말한다.
    • 하나의 타입에 여러 객체를 대입함으로써 다양한 기능을 이용할 수 있도록 해준다.

 

객체와 클래스

  • 객체는 설계도를 바탕으로 만들어진다. 이 설계도가 바로 클래스(Class)이다.
  • 클래스로부터 만들어진 객체를 해당 클래스의 인스턴스(instance)라고 한다.

'Web > Java' 카테고리의 다른 글

Stream - (1) 스트림이란?  (0) 2021.07.12
인터페이스 (Interface)  (0) 2021.03.30
추상 클래스 (Abstract Class)  (0) 2021.03.30
Array와 Collection Framework의 차이는?!  (0) 2021.03.26
Exception, 개발자의 숙명!  (0) 2021.03.24

댓글