반응형
    
    
    
  
														Notice
														
												
											
												
												
													Link
													
											
									| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 | 
| 12 | 13 | 14 | 15 | 16 | 17 | 18 | 
| 19 | 20 | 21 | 22 | 23 | 24 | 25 | 
| 26 | 27 | 28 | 29 | 30 | 31 | 
													Tags
													
											
												
												- 보안
- 웹개발
- 컴퓨터과학
- 소프트웨어공학
- 머신러닝
- 데이터과학
- 데이터분석
- 컴퓨터비전
- 자료구조
- I'm Sorry
- 네트워크
- 프로그래밍언어
- 사이버보안
- 버전관리
- 디자인패턴
- 네트워크보안
- 알고리즘
- 딥러닝
- 인공지능
- 자바스크립트
- springboot
- 컴퓨터공학
- 빅데이터
- 파이썬
- 프로그래밍
- 소프트웨어
- 데이터구조
- 데이터베이스
- Yes
- 클라우드컴퓨팅
													Archives
													
											
												
												- Today
- Total
스택큐힙리스트
자바 스프링 개발 시작하기 - 2일차 조건문·반복문과 객체 설계 본문
반응형
    
    
    
  오늘 배울 내용 🔑
- 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로 예외 처리, 메서드로 재사용성 확보
반응형
    
    
    
  '개발' 카테고리의 다른 글
| [JAVA] 람다식과 메서드 레퍼런스 (1) | 2025.07.09 | 
|---|---|
| 자바 스프링 개발 시작하기 - 3일차 컬렉션과 제네릭으로 학생 명단 관리 (1) | 2025.07.09 | 
| JUnit5로 BankAccount 단위 테스트 작성법 (1) | 2025.07.08 | 
| 자바 var 키워드 활용법과 주의점 (1) | 2025.07.07 | 
| 자바 스프링 개발 시작하기 - 1일차 환경 세팅과 기초 문법 맛보기 (3) | 2025.07.07 | 
			  Comments