AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

객체지향 프로그래밍의 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)

  • 동일한 인터페이스로 다양한 구현: ContaBancariaContaInvestimento가 동일한 calcularJuros() 메서드를 다르게 구현
  • 예시: Contas[] contas = {new ContaBancaria(), new ContaInvestimento()}; 배열에서 calcularJuros() 호출 시 자동 구현 선택
  • 설계 원칙: 확장성과 유연성 향상

결론

  • 캡슐화 구현: private 접근 제어자와 메서드를 통해 데이터 보안 강화
  • 원리 적용 팁: 상속과 다형성을 활용한 확장 가능한 설계, 추상화로 복잡도 관리
  • 실무 예시: ContaBancaria 클래스의 saldo 속성 보호와 depositar()/sacar() 메서드를 통해 상태 조절의 안정성 확보