티스토리 뷰

OOP (Object Oriented Programming) : 객체지향 프로그래밍 = 기능별로 객체를 나눈다.

객체지향 프로그래밍이란 객체를 이용하는 프로그래밍 방식을 말한다. 객체(Object)란 컴퓨터, 고객, 학생, 자동차 등 현실 세계에서 흔히 찾아볼 수 있는 대상을 추상화(Abstraction) 하여 프로그램 상에서 만들어낸 결과물이다. 예를 들어 자동차를 만들어야 한다면, 자동차의 각 부품들을 별개로 제작한 다음 필요한 부품을 조립하는 방식으로 자동차를 완성해 나가는 것이 객체지향 프로그래밍 방식이라고 볼 수 있다.

 

객체지향 프로그래밍의 기술적 특징은 아래 4가지와 같으며, 이 기술들을 이용하여 프로그램을 구현하는 것이 객체지향 프로그래밍이다.

  • 추상화 (Abstraction) : 여러 객체들을 하나의 추상적인 큰 개념으로 묶어 실제 데이터들을 모델링 하는 기술
  • 캡슐화 (Encapsulation) : 객체의 기능을 사용만 한다. (코드는 은닉 시킨다)
  • 상속 (Inheritance) : 상위 개념을 하위 객체가 물려받는다. -> 클래스의 재사용과 코드의 중복 제거를 목적으로 한다
  • 다형성 (Polymorphsim) : 같은 이름의 기능이지만, 다른 행위를 하는 것. 상속을 이용해 여러 클래스 타입을 하나의 클래스 타입으로 다루는 기술

 

추상화(Abstraction)와 캡슐화(Encapsulation)

 

프로그램에서 필요로 하는 데이터와 데이터를 처리하기 위한 동작들을 정리하는 과정을 추상화라고 하며, 추상화 과정에서는 소스 코드의 구현이 아닌 데이터들의 객체화와 객체들 간의 관계에 대한 모델링 과정이 중요하다.

클래스는 추상화 한 내용을 정리한 설계도와 같은 것이고, 객체는 클래스를 실제 사용한 프로그램 상에서의 결과물이라 보면 된다.

 

객체지향 관점에서의 캡슐화는 여러 자료형 변수들을 class 영역 안에서 접근제한자 private 을 사용하여 멤버변수(Field)로 선언하여 외부에서 클래스 내부의 데이터에 접근하지 못하도록 막는 것이 핵심이다. 이렇게 클래스 내부의 데이터를 외부에서 접근하지 못하도록 설정함으로써 객체가 가진 데이터를 보호할 수 있게 되며, 이를 정보 은닉(Information Hiding) 이라고 한다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함