개발하는 자몽

객체지향프로그래밍(추상화, 부품화, 은닉화, 캡슐화) 본문

Java

객체지향프로그래밍(추상화, 부품화, 은닉화, 캡슐화)

jaamong 2021. 12. 23. 14:27

C++, Java를 이용해서 코딩을 하지만 객체지향프로그래밍에 대해 제대로 알지 못하는 것 같아서 간단하게 정리해보려고 한다.

 

추상화

 

"해결해야할 문제를 소프트웨어적으로 단순하게 만드는 행위"

소프트웨어 설계 = 복잡한 현실 문제를 간단하게(추상화)하는 과정 

 

 

부품화

로직과 관련된 변수, 메소드 = 객체 -> 다른 곳에도 활용 가능(재활용성 up)

다른 곳에도 활용 가능하다는 것은 "부품"으로써 사용된다는 의미

 

"메소드"는 프로그램 안에서 중복되게 사용되는 것을 별도로 분리해서 로직으로 만든 것 --> 객체지향으로 이어짐

=> 메소드 사용 ~ 코드 양 감소, 코드 찾기 쉬워짐, 문제 진단 속도 증가

 

 

은닉화, 캡슐화

제대로된 부품이라면 해당 부품이 어떻게 만들어졌는지 모르는 사람도 사용 방법만 알면 쓸 수 있어야 함

, 내부의 동작 방법을 케이스(객체)안으로 숨기고 사용자에게는 해당 부품의 사용방법(해당 객체가 가지고 있는 메소드에 대한 사용 방법)만의 노출하고 있는 것!

=> 이러한 컨셉을 정보의 은닉화(Information Hiding), 또는 캡슐화(Encapsulation)라고 함 

'Java' 카테고리의 다른 글

Wrapper 클래스  (0) 2022.07.19
[객체 지향] is-a, has-a  (0) 2022.07.16
static, singleton pattern  (0) 2022.07.15
객체와 메모리 in Java  (0) 2022.07.14
스프링과 객체 지향 (1) - 자바 언어의 다형성  (0) 2022.04.04
Comments