반응형
💡캡슐화 (Encapsulation)
- 캡슐화는 데이터와 데이터를 다루는 메서드(함수)를 하나의 단위로 묶는 것을 의미합니다.
- 캡슐화는 클래스 내부에 멤버 변수(필드)와 해당 변수를 다루는 메서드(게터 및 세터)를 정의함으로써 구현됩니다.
- 주요 목적은 데이터와 데이터를 다루는 메서드를 노출시키지 않고, 외부에서의 직접적인 접근을 제어하여 데이터의 무결성과 보안을 유지하는 것입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public class Student {
private String name; // 멤버 변수, private으로 캡슐화
private int age;
public String getName() { // 게터 메서드, 데이터 반환
return name;
}
public void setName(String name) { // 세터 메서드, 데이터 설정
this.name = name;
}
}
|
cs |
💡은닉화 (Information Hiding)
- 은닉화는 외부에서의 접근을 완전히 숨기는 것을 의미합니다. 캡슐화를 포함하는 개념 중 하나입니다.
- 은닉화는 클래스의 내부 구현 상세를 외부로부터 감추고, 오직 필요한 인터페이스(API)만을 노출시킴으로써 구현됩니다.
- 주요 목적은 클래스의 내부 변경에 대한 영향을 최소화하고, 외부 사용자가 오직 공개된 인터페이스만 사용할 수 있도록 하는 것입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
public class BankAccount {
private double balance; // 멤버 변수, private으로 은닉화
public double getBalance() { // 게터 메서드, 잔고 반환
return balance;
}
public void deposit(double amount) { // 입금 메서드
if (amount > 0) {
balance += amount;
}
}
public void withdraw(double amount) { // 출금 메서드
if (amount > 0 && balance >= amount) {
balance -= amount;
}
}
}
|
cs |
💻결론
요약하면, 캡슐화는 데이터와 데이터를 다루는 메서드를 클래스 내에서 묶는 개념이며, 은닉화는 클래스의 내부 구현을 외부로부터 감추어야 하는 개념입니다. 은닉화는 캡슐화를 통해 구현될 수 있습니다. 이러한 개념들은 객체 지향 프로그래밍의 핵심 원칙 중 하나인 정보 은닉을 실현하기 위한 도구입니다.
반응형
'프로그래밍 > Java' 카테고리의 다른 글
[Java] JVM의 구조 (0) | 2023.10.05 |
---|---|
[Java] OOP의 5대원칙(SOLID) (0) | 2023.10.04 |
[Java] OOP의 4가지 특징 (1) | 2023.10.04 |
[Java] Java의 접근 제어자의 종류와 특징 (0) | 2023.10.03 |
[Java]Java의 String이 불변객체인 이유 (0) | 2023.10.02 |