스택큐힙리스트

자바 스프링 개발 시작하기 - 2일차 조건문·반복문과 객체 설계 본문

개발

자바 스프링 개발 시작하기 - 2일차 조건문·반복문과 객체 설계

스택큐힙리스트 2025. 7. 8. 15:56
반응형

오늘 배울 내용 🔑

  • if / for / switch : 자바의 기본 제어 흐름
  • 클래스·객체·메서드 : OOP 기초 다지기
  • 캡슐화 & 메서드 오버로딩 : 유지보수성을 높이는 두 가지 무기
  • 실습 — BankAccount : 입·출금 로직 직접 구현

1. 제어 흐름 한 방에 정리

// if
if (balance > 0) { System.out.println("정상 출금 가능"); }

// switch
switch (menu) {
    case 1 -> createAccount();
    case 2 -> showList();
    default  -> System.out.println("잘못된 입력");
}

// for
for (int i = 0; i < accounts.size(); i++) {
    System.out.println(accounts.get(i));
}
  • if : 조건이 true면 코드 블록 실행
  • switch : 값별 분기 처리, -> 라벨로 가독성 ↑ (Java 14+)
  • for : 반복 횟수가 고정일 때 가장 명료

2. 객체를 만드는 첫걸음

클래스는 데이터(필드)행동(메서드) 를 한 곳에 묶어 주는 틀이다.

“코드를 설계도로, 객체를 실제 건물로 떠올리면 이해가 빠르다”


3. 캡슐화가 왜 필요할까?

  • private 필드 + public 메서드 구조로 외부 접근 제어
  • 잘못된 값이 바로 들어오는 걸 막아 버그·보안 사고 예방
  • 내부 구현이 바뀌어도 외부 코드는 그대로 — 유지보수 비용 절감

4. 메서드 오버로딩으로 유연성 업

같은 이름의 메서드를 매개변수 리스트만 다르게 선언해 다양한 상황에 대응.

public void deposit(int amount)         { this.balance += amount; }
public void deposit(int amount, String memo) {
    this.balance += amount;
    System.out.println(memo + " 입금 완료");
}

오버로딩 덕분에 사용자는 필요에 따라 옵션을 고를 수 있다.


5. 실전 예제 — BankAccount 클래스

public class BankAccount {
    private String owner;
    private long balance;        // 캡슐화: 외부 직접 접근 차단

    // 생성자
    public BankAccount(String owner, long balance) {
        this.owner   = owner;
        this.balance = balance;
    }

    // 잔액 조회
    public long getBalance() {
        return balance;
    }

    // 입금 (오버로딩)
    public void deposit(long amount) { deposit(amount, ""); }
    public void deposit(long amount, String memo) {
        if (amount <= 0) throw new IllegalArgumentException("0 이하 입금 불가");
        balance += amount;
        if (!memo.isBlank()) System.out.println(memo);
    }

    // 출금
    public void withdraw(long amount) {
        if (amount > balance) throw new IllegalStateException("잔액 부족");
        balance -= amount;
    }
}
  • 캡슐화 : balance를 private으로 보호
  • 오버로딩 : deposit 두 버전 제공
  • if로 예외 처리, 메서드로 재사용성 확보
반응형
Comments