🎯 3가지 키워드 비교: 새로운 예시 — 컵라면 공장
상황:
- 너는 컵라면 공장을 운영하고 있어.
- 매일 라면을 생산하는 기계가 있고, 거기서 나오는 라면(객체) 마다 제조번호가 다르지!
✅ static: 공장에서 모두가 공유하는 것
public class Ramen {
static String factoryName = "라면공장";
}
- 이건 공장 이름
- 모든 라면이 같은 공장에서 나왔으니까 공장 이름은 하나만 있으면 돼!
- 그래서 static은 "모든 객체가 공유하는 값"이야.
📌 사용 예
System.out.println(Ramen.factoryName); // 라면공장
✅ 객체 없이도 클래스 이름으로 바로 접근 가능!
✅ final: 바뀌면 안 되는 개별 정보
public class Ramen {
final String serialNumber;
public Ramen(String serialNumber) {
this.serialNumber = serialNumber;
}
}
- 라면마다 제조번호(serialNumber) 가 다를 수 있어
- 하지만! 한 번 정해지면 바꾸면 안 되지! (바꾸면 위조지! 😅)
- 그래서 final은 "바꿀 수 없는 값"이야.
📌 사용 예
Ramen r1 = new Ramen("A12345");
System.out.println(r1.serialNumber); // A12345
r1.serialNumber = "B99999"; // ❌ 에러! final 값은 변경 불가
✅ static final: 모두가 공유하고 바꿀 수 없는 값 (상수)
public class Ramen {
static final int CUP_SIZE = 120;
}
- 컵라면 크기 = 120ml 고정!
- 모든 라면이 이 컵 크기를 사용하고, 절대 바꾸면 안 됨!
- 그래서 static final은 공통이면서 고정된 값, 즉 "상수"야.
📌 사용 예
System.out.println(Ramen.CUP_SIZE); // 120
✅ 클래스명으로 바로 접근 가능 + 변경 불가
🧠 진짜 쉬운 요약
키워드뜻예시로 다시 설명
| static | 다 같이 공유 | 공장 이름 |
| final | 한 번만 설정되고 안 바뀜 | 라면 제조번호 |
| static final | 공통 + 고정된 값 (상수) | 컵 사이즈 120ml |
출처 : chatgpt
'Language > Java' 카테고리의 다른 글
| Scanner와 BufferedReader 차이 (1) | 2025.08.28 |
|---|---|
| JVM 과 자바메모리 (5) | 2025.07.30 |
| 생성자에 대해.. (2) | 2025.07.29 |
| @Controller VS @RestController (0) | 2023.07.17 |
| length()메소드에 대해.. (0) | 2023.07.14 |