Search

μΊ‘μŠν™”

μΊ‘μŠν™”

데이터(속성)와 ν•΄λ‹Ή 데이터λ₯Ό μ²˜λ¦¬ν•˜λŠ” λ©”μ„œλ“œ(λ™μž‘)λ₯Ό ν•˜λ‚˜μ˜ λ‹¨μœ„λ‘œ λ¬ΆλŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€.
μΊ‘μŠν™”λŠ” 데이터λ₯Ό μ™ΈλΆ€λ‘œλΆ€ν„° λ³΄ν˜Έν•˜κ³  객체의 λ‚΄λΆ€ κ΅¬ν˜„μ„ 숨겨 μ½”λ“œμ˜ μœ μ§€ λ³΄μˆ˜μ„±μ„ λ†’μ΄λŠ” 데 μ€‘μš”ν•œ 역할을 ν•©λ‹ˆλ‹€.

μΊ‘μŠν™” κ΅¬ν˜„

μžλ°”μ—μ„œ μΊ‘μŠν™”λŠ” 클래슀의 ν•„λ“œλ₯Ό private으둜 μ„ μ–Έν•˜κ³ , 이에 μ ‘κ·Όν•  수 μžˆλŠ” public λ©”μ„œλ“œ(getter/setter)λ₯Ό μ œκ³΅ν•˜μ—¬ 데이터 무결성을 보μž₯ν•˜κ³  객체의 λ‚΄λΆ€ κ΅¬ν˜„μ„ μˆ¨κΈ°λŠ” κ³Όμ •μž…λ‹ˆλ‹€.
μžλ°”μ—μ„œ μΊ‘μŠν™”λŠ” 주둜 λ‹€μŒκ³Ό 같은 λ°©λ²•μœΌλ‘œ κ΅¬ν˜„ν•©λ‹ˆλ‹€:
β€’
μ ‘κ·Ό μ œμ–΄μž(Access Modifier) μ‚¬μš©: private, protected, public, defaultλ₯Ό 톡해 클래슀 λ©€λ²„μ˜ μ ‘κ·Ό μˆ˜μ€€μ„ μ œμ–΄ν•©λ‹ˆλ‹€.
β€’
Getter와 Setter λ©”μ„œλ“œ: private으둜 μ„ μ–Έλœ ν•„λ“œμ— μ ‘κ·Όν•˜κ³  μˆ˜μ •ν•  수 μžˆλŠ” 곡개 λ©”μ„œλ“œλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
β€’
νŒ¨ν‚€μ§€ ꡬ쑰화: κ΄€λ ¨λœ 클래슀λ₯Ό νŒ¨ν‚€μ§€λ‘œ λ¬Άμ–΄ κ΄€λ¦¬ν•©λ‹ˆλ‹€.

μΊ‘μŠν™” μ˜ˆμ‹œ μ½”λ“œ

public class BankAccount { // private ν•„λ“œ - μ™ΈλΆ€μ—μ„œ 직접 μ ‘κ·Ό λΆˆκ°€λŠ₯ private String accountNumber; private String accountHolder; private double balance; // μƒμ„±μž public BankAccount(String accountNumber, String accountHolder) { this.accountNumber = accountNumber; this.accountHolder = accountHolder; this.balance = 0.0; } // Getter λ©”μ„œλ“œ public String getAccountNumber() { return accountNumber; } public String getAccountHolder() { return accountHolder; } public double getBalance() { return balance; } // μž…κΈˆ λ©”μ„œλ“œ public void deposit(double amount) { if (amount > 0) { balance += amount; System.out.println(amount + "원이 μž…κΈˆλ˜μ—ˆμŠ΅λ‹ˆλ‹€."); } else { System.out.println("μœ νš¨ν•˜μ§€ μ•Šμ€ μž…κΈˆμ•‘μž…λ‹ˆλ‹€."); } } // 좜금 λ©”μ„œλ“œ public void withdraw(double amount) { if (amount > 0 && balance >= amount) { balance -= amount; System.out.println(amount + "원이 μΆœκΈˆλ˜μ—ˆμŠ΅λ‹ˆλ‹€."); } else { System.out.println("μΆœκΈˆν•  수 μ—†μŠ΅λ‹ˆλ‹€. μž”μ•‘μ΄ λΆ€μ‘±ν•˜κ±°λ‚˜ μœ νš¨ν•˜μ§€ μ•Šμ€ κΈˆμ•‘μž…λ‹ˆλ‹€."); } } }
Java
볡사
μœ„ μ˜ˆμ‹œμ—μ„œ κ³„μ’Œ 정보(accountNumber, accountHolder)와 μž”μ•‘(balance)은 private으둜 μ„ μ–Έλ˜μ–΄ μ™ΈλΆ€μ—μ„œ 직접 μ ‘κ·Όν•  수 μ—†μŠ΅λ‹ˆλ‹€. λŒ€μ‹  μž…κΈˆ(deposit)κ³Ό 좜금(withdraw) λ©”μ„œλ“œλ₯Ό ν†΅ν•΄μ„œλ§Œ μž”μ•‘μ„ λ³€κ²½ν•  수 있으며, getter λ©”μ„œλ“œλ₯Ό 톡해 정보λ₯Ό μ‘°νšŒν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이처럼 μΊ‘μŠν™”λ₯Ό 톡해 λ°μ΄ν„°μ˜ 무결성을 λ³΄ν˜Έν•˜κ³  객체의 μ‚¬μš©λ²•μ„ λ‹¨μˆœν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.