Notice
Recent Posts
Link
Tags
- 스프링
- join
- sql
- string
- 스프링부트
- spring mvc
- java
- mysql
- nginx
- SSL
- Docker
- @transactional
- jpa
- 자바
- session
- Git
- 데이터베이스
- PYTHON
- select
- Django
- 1차원 배열
- AWS
- springboot
- DI
- spring
- spring security 6
- ORM
- 문자열
- spring boot
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Archives
개발하는 자몽
객체지향프로그래밍(추상화, 부품화, 은닉화, 캡슐화) 본문
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