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

·2025년 4월 6일

Power Java

목록 보기
13/75

4.1 객체 지향 프로그래밍이란?

객체
1) 상태 속성
2) 동작 기능

1)과 2)는 소프트웨어에서 각각 필드와 메소드로 표현할 수 있다.

객체 안의 변수 = 필드
객체 안의 함수 = 메소드

< 프로그래밍 기법의 발전 >
어셈블리 -> 절차지향 -> 객체지향 -> 함수형

절차 지향 프로그래밍
: 명령형 프로그래밍에 속하는 방법이다.

  • 프로시저에 기반을 두고 있으며, 프로시저는 함수 or 서브루틴을 뜻한다.
  • 프로그램은 함수들의 집합으로 이루어진다.


*절차 지향에서 사용되는 설계 방법은 하향식 설계라고도 불린다. 복잡한 문제를 작은 문제들로 분해하는 방법이다.

•문제점

  • 변수와 함수를 묶을 방법이 없다.

객체 지향 프로그래밍
: 데이터와 함수를 하나의 덩어리로 묶어서 생각하는 방법이다.
•캡슐화
: 데이터와 함수를 하나의 덩어리(객체)로 묶는 것.

< 절차 지향 vs 객체 지향 >
•절차 지향

  • 함수(프로시저) 중요.
  • 데이터와 함수가 분리된다.

•객체 지향

  • 데이터와 함수가 객체로 캡슐화된다.

< 객체 지향 프로그래밍의 특징 >
1) 캡슐화
2) 정보 은닉
3) 상속
4) 다형성

  1. 캡슐화
    : 코드 재사용을 위해 관련 데이터와 알고리즘이 하나의 묶음으로 정리되어 있는 것.
    *객체(object)가 하나의 캡슐이다.

필드는 데이터,
메소드는 알고리즘
에 해당된다.

  1. 정보 은닉
    : 객체의 외부에서 내부 데이터를 볼 수 없게 하는 것.
  • 사용자들에게 객체의 기능과 사용법만 제공하고, 내부는 보지 못하도록 감추어 놓는다.

*정보은닉이 되어 있다면 클래스 개발자는 언제든지 내부 데이터와 알고리즘을 변경할 수 있다.
유지되어야 할 것은 오직 공개 인터페이스 뿐이다.

  1. 상속
    : 이미 작성된 클래스를 이어받아서 새로운 클래스를 생성하는 것.
    부모-자식 클래스

  2. 다형성
    : 동일한 이름의 동작이라도, 객체의 실제 타입에 따라서 동작의 내용이 달라질 수 있는 것.
    *메소드 오버로딩과 같은 것도 넓은 의미로 다형성에 속한다.

  3. 추상화
    : 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단히 만드는 기법.
    => 필요한 것만 남겨 놓기

0개의 댓글