Notice
Recent Posts
Link
Tags
- spring boot
- 스프링부트
- springboot
- ORM
- static
- DI
- PYTHON
- spring mvc
- join
- mysql
- AWS
- SSL
- string
- 자바
- nginx
- 데이터베이스
- jpa
- java
- 1차원 배열
- select
- spring security 6
- 스프링
- sql
- 문자열
- spring
- 프로그래머스
- Docker
- Django
- hibernate
- @transactional
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 & Kotlin' 카테고리의 다른 글
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