본문으로 건너뛰기
Java 기초집LESSON 13

static, final, enum: 공유 규칙과 변하지 않는 값 표현하기

난이도입문 → 초급
예상 시간35분
선수지식이전 강의

13강. static, final, enum: 공유 규칙과 변하지 않는 값 표현하기

1. 이번 강의에서 해결할 문제​

모드 이름과 최대 점수를 문자열·숫자로 여러 곳에 반복하면 오타와 규칙 불일치가 생깁니다. 공유 규칙과 가능한 값을 한곳에 정의해야 합니다.

2. 학습 목표​

3. 핵심 개념​

static 멤버는 클래스에 하나만 존재해 모든 인스턴스가 공유합니다. final 변수는 다시 대입할 수 없고 static final 상수는 UPPER_SNAKE_CASE를 사용합니다. enum은 허용 가능한 값 집합을 타입으로 제한하며 각 값에 동작과 데이터를 둘 수 있습니다.

4. 단계별 실습​

1. src/RulesDemo.java 작성​

실행 환경: 코드 편집기

실행 위치: C:\dev\game-records

실행 전 확인: 같은 이름의 기존 파일이 있다면 덮어쓰기 전에 Git diff와 이번 강의 변경 범위를 확인합니다.

대상 파일: src/RulesDemo.java

src/RulesDemo.java
enum GameMode {
CASUAL(50), RANKED(200);

private final int bonus;
GameMode(int bonus) { this.bonus = bonus; }
int bonus() { return bonus; }
}

public class RulesDemo {
private static final int MAX_SCORE = 10_000;

public static void main(String[] args) {
GameMode mode = GameMode.RANKED;
int baseScore = 1_300;
int finalScore = Math.min(baseScore + mode.bonus(), MAX_SCORE);
System.out.println(mode + " 최종 점수: " + finalScore);
}
}

2. PowerShell에서 컴파일·실행​

실행 환경: Windows PowerShell

실행 위치: C:\dev\game-records

실행 전 확인: java -version과 javac -version이 선택한 LTS JDK를 가리키고, 소스 파일명이 public 클래스명과 일치하는지 확인합니다.

대상: 이 강의의 .java 파일, out의 class 파일과 명시된 출력 파일

Windows PowerShell
Set-Location C:\dev\game-records
javac -d out .\src\RulesDemo.java
java -cp out RulesDemo

예상 결과: RANKED enum의 200 보너스가 적용된 최종 점수가 출력됩니다.

5. 코드가 동작하는 이유​

GameMode은 CASUAL 또는 RANKED만 허용하므로 임의 문자열 오타가 컴파일 단계에서 사라집니다. MAX_SCORE는 모든 객체가 공유하는 변경 불가 규칙입니다.

6. 자주 하는 실수와 해결법​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

static, final, enum: 공유 규칙과 변하지 않는 값 표현하기 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“static, final, enum: 공유 규칙과 변하지 않는 값 표현하기”의 코드·명령이 의도대로 동작하는지 판단할 기준은 무엇인가요?
  2. 문제 2‘enum을 단순 문자열처럼 저장하기’ 실수를 판단할 때 “static, final, enum: 공유 규칙과 변하지 않는 값 표현하기” 강의가 제시한 기준은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

13강. static, final, enum: 공유 규칙과 변하지 않는 값 표현하기 미완료 상태