Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- HashSet
- java
- entity
- Python
- html tag
- github
- @builder
- 파이썬
- 상속
- stringbuffer
- git
- lv1
- 캡슐화
- 에러
- 코드업
- @AllArgsConstructor
- DTO
- 부스트코스
- HTML
- 브랜치
- 자바
- 프로그래머스
- 기본생성자
- Codeup
- @NoArgsConstructor
- CRUD
- 깃허브
- SQL
- 부트캠프
- 알고리즘
Archives
- Today
- Total
잉?
[JAVA] 캡슐화(Encapsulation)와 추상화(Abstraction)에 대해 알아보자 본문
캡슐화(Encapsulation)
클래스 안에 서로 연관 있는 속성과 기능들을 하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것이다.
즉, 클래스의 내부 변수와 메서드를 하나로 패키징 하는 것이다.
정보은닉
캡슐화를 하는 중요한 목적 중 하나이다.(캡슐화 ≠ 정보은닉)
접근제어자를 통해 데이터를 보호하고, 보호된 변수는 getter나 setter 등의 메서드를 통해서만 간접적으로 접근이 가능하도록 하는 것이 캡슐화의 중요한 목적이다.
접근제어자
private < default < protected < public 순으로 많은 접근을 허용한다.
- private : 해당 클래스 안에서만 접근이 가능하다.
- default : 접근 제어자를 별도로 설정하지 않는다면 변수나 메서드는 default 접근 제어자가 자동으로 설정되어 동일한 패키지 안에서만 접근이 가능하다.
- protected : 동일 패키지의 클래스 또는 해당 클래스를 상속받은 클래스에서만 접근이 가능하다.
- public : 어떤 클래스에서도 접근이 가능하다.
추상화(Abstraction)
정확하게 표현하기 힘든 것들을 중요한 부분이나 특징점을 잡아 설명하는 것을 말한다.
즉, 객체들의 공통된 특징을 파악해 정의해 놓은 설계 기법이라고 할 수 있다.
제어 추상화
- 불필요한 세부 정보는 숨긴다.
- 메소드의 작동방식과 같은 내부 로직을 숨기는 것을 말한다.
- 프로그래밍을 빠르게 설계하고 구현하기 위해 사용한다.
- 예시로 for문, while문도 반복하는 개념을 제어 추상화 한 것이라고 볼 수 있다. 코드를 반복하는 데 있어 내부 동작이 어떻게 이루어지는 가를 알 필요 없이, 반복 기능이 추상화된 문법을 복잡한 지식 없이 간단하게 이용해 프로그램을 구상할 수 있었던 것이다.
데이터 추상화
- 객체의 관련 속성만 표시한다.
- 간단한 개념으로 일반화 하는 과정을 말한다.
- 객체의 디테일함이 사라지고 공통된 특징만 남게 된다.
- 예시로 아이폰 → 휴대폰 → 통신기기 → 전자제품으로 추상화가 이어질 수 있다.
'자바(Java)' 카테고리의 다른 글
[JAVA] 상속(Inheritance)에 대해 알아보자. (0) | 2023.07.20 |
---|---|
[JAVA] OOP(Object-Oriented-Programming, 객체 지향 프로그래밍) + 대표적인 특징 (0) | 2023.07.18 |
[Java] 오버로딩(Overloading)과 오버라이딩(Overriding)의 차이점 (0) | 2023.06.29 |
[Java] 다차원 배열 중 2차원 배열 (0) | 2023.06.13 |
[Java] 기본 생성자 + 기본 생성자가 필요한 이유 (0) | 2023.06.09 |
Comments