객체지향 프로그래밍의 4대 원리
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- 객체지향 프로그래밍 기초를 배우는 개발자
- Java 또는 다른 OOP 언어를 사용하는 프로젝트 참여자
- 코드 재사용성과 유지보수성을 고려한 설계를 학습하고자 하는 개발자
핵심 요약
- 4대 원리: 캡슐화, 추상화, 상속, 다형성
- 캡슐화:
private
접근 제어자 사용으로 데이터 보호 및 메서드를 통한 상태 조작 - 실제 예시:
ContaBancaria
클래스에서saldo
속성은 외부에서 직접 수정 불가능,depositar()
/sacar()
메서드를 통해 조절 - 장점: 모듈화된 설계, 변경에 강한 코드, 재사용 가능한 컴포넌트 생성
섹션별 세부 요약
1. 캡슐화 (Encapsulamento)
- 데이터 보호:
private
로 정의된 속성은 외부에서 직접 접근 불가 - 메서드를 통한 상태 조작:
depositar()
/sacar()
메서드에서 값 유효성 검증 후 상태 업데이트 - 코드 예시:
```java
public class ContaBancaria {
private double saldo;
public void depositar(double valor) {
if (valor > 0) {
saldo += valor;
}
}
```
2. 추상화 (Abstração)
- 복잡한 내부 로직 숨기기: 사용자에게 필요한 인터페이스만 노출
- 예시:
ContaBancaria
클래스의saldo
속성은 외부에서 보이지 않음 - 설계 원칙: 클라이언트는 구현 세부 사항을 알 필요 없음
3. 상속 (Herança)
- 기존 클래스 확장: 부모 클래스의 속성/메서드 재사용
- 예시:
ContaCorrente
클래스가ContaBancaria
를 상속받아 추가 기능 구현 - 아키텍처 패턴: 계층 구조로 코드 중복 방지
4. 다형성 (Polimorfismo)
- 동일한 인터페이스로 다양한 구현:
ContaBancaria
와ContaInvestimento
가 동일한calcularJuros()
메서드를 다르게 구현 - 예시:
Contas[] contas = {new ContaBancaria(), new ContaInvestimento()};
배열에서calcularJuros()
호출 시 자동 구현 선택 - 설계 원칙: 확장성과 유연성 향상
결론
- 캡슐화 구현:
private
접근 제어자와 메서드를 통해 데이터 보안 강화 - 원리 적용 팁: 상속과 다형성을 활용한 확장 가능한 설계, 추상화로 복잡도 관리
- 실무 예시:
ContaBancaria
클래스의saldo
속성 보호와depositar()
/sacar()
메서드를 통해 상태 조절의 안정성 확보