반응형
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
- 데이터베이스
- 알고리즘
- 컴퓨터비전
- 네트워크
- 클라우드컴퓨팅
- 데이터분석
- 파이썬
- springboot
- 소프트웨어
- 데이터과학
- I'm Sorry
- 프로그래밍언어
- 소프트웨어공학
- 사이버보안
- 자료구조
- 머신러닝
- 네트워크보안
- 자바스크립트
- 데이터구조
- 컴퓨터과학
- 디자인패턴
- 프로그래밍
- 웹개발
- 빅데이터
- 딥러닝
- 인공지능
- 버전관리
- 보안
- 컴퓨터공학
- 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일차 환경 세팅과 기초 문법 맛보기 (1) | 2025.07.07 |
Comments