📌 오늘 학습한 주제
- Java 정적 키워드(
static)와 멤버/클래스 변수 및 메소드의 메모리 구조 (StaticApp.java)
- 조건문 (
if-else, 삼항 연산자, Switch-Expression) 및 메소드 오버로딩 (OperatorDemo.java)
- 반복문 (
for, while, do-while)과 제어 키워드 (break, continue, Labeled Loop)
- String API 조작 (
length(), charAt()) 및 역순 문자열 출력 (OperatorDemo.java)
💡 오늘 배운 것 — 나만의 언어로
① 오늘의 목표
- Java의
static 키워드 동작 원리를 이해하고, 다양한 제어문(조건문/반복문)과 메소드 오버로딩 구문을 활용해 실전 객체지향 로직을 작성하기
② 학습할 내용
- Static 키워드 및 상수 (
StaticApp.java): static 변수와 메소드는 인스턴스 생성 없이 클래스명.멤버로 접근 가능하며, final 키워드가 붙은 상수(PI)는 값 수정이 불가능함을 확인했다.
- 조건문과 Switch Expression (
OperatorDemo.java): 기존 switch-case문 외에도 Java 14+ 람다 형태의 Switch Expression(case ->)을 통해 깔끔한 반환값 처리를 구현했다.
- 반복문 및 난수 발생 (
OperatorDemo.java): Math.random()을 활용해 난수를 생성하고 for, while, do-while 구문으로 누적 합을 계산했으며, 라벨(outer:)을 지정해 다중 루프를 원활하게 탈출하는 방식을 익혔다.
- 문자열 순회 조작 (
OperatorDemo.java): str.length()와 str.charAt(index) 함수를 조합하여 전달받은 문자열을 역순으로 출력하는 알고리즘을 실습했다.
💻 오늘 핵심 코드
1. Static 키워드와 상수 접근 (StaticApp.java)
import features.stat.StaticDemo;
public class StaticApp {
public static void main(String[] args) {
StaticDemo demo = new StaticDemo();
demo.message = "메시지 변경";
System.out.println(StaticDemo.staticMessage);
System.out.println(StaticDemo.PI);
demo.instanceMethod();
StaticDemo.classMethod();
}
}
2. Switch Expression 및 다양한 반복문 구현 (OperatorDemo.java)
public class OperatorDemo {
public String woodMan(int number) {
String result = null;
switch(number) {
case 1 -> result = "산신령이 대답하길 ~ 거짓말하는구나";
case 2 -> result = "산신령이 대답하길 ~ 또 거짓말하는구나";
case 3 -> result = "산신령이 대답하길 ~ 정직하구나 너에게 모든 도끼를 주겠다";
default -> result = "1 ~ 3 사이의 숫자를 입력해주세요.";
}
return result;
}
public static int sumRandom() {
int result = 0;
int nan = (int)(Math.random() * 100) + 1;
int data = 1;
do {
result += data;
data++;
} while(data <= nan);
return result;
}
public void popStr(String str) {
for(int idx = str.length() - 1; idx >= 0; idx--) {
System.out.print(str.charAt(idx));
}
System.out.println();
}
}
🛠️ 실습 / 결과물 & 참고 자료
③ 실습 / 결과물
- 강의 실습코드:
StaticApp.java, OperatorApp.java, GuessGameApp.java, OperatorDemo.java 파일 연동을 통해 static 멤버 제어, 난수 기반 반복문, 문자열 역순 출력(popStr) 실행 결과 확인.
④ 참고 자료
- Oracle Java Documentation: Java Static Keyword & Control Flow Statements (Switch Expressions)
🔍 문제와 해결
- 막힌 부분: 다중 반복문 구문(
gugudan) 탈출 시 break 사용 시 가장 안쪽 루프만 종료되어 원하는 시점에 전체 반복을 빠져나가지 못하는 현상 점검.
- 해결 방법: 바깥쪽
for문에 outer: 바깥 라벨을 지정하고 break outer;를 실행하여 중첩 반복문을 한 번에 탈출하도록 제어 흐름을 바로잡음.
🎯 다음에 할 일