Files
2nd/10_Wiki/Dev/Topic_Java/Java_Enum_Constructor.md
T
Antigravity Agent 1cfd3bbb56 docs(10_Wiki): 위키 구조 정리 — 언어 튜토리얼 카테고리 폴더 제거 + 신규 자산 동기화
Topic_CSS/Topic_HTML/Topic_JavaScript/Topic_Prompt/Topic_Comfyui 등 기존 카테고리 폴더를 정리하고,
Topic_Graphic/Dev 등 신규 산출물과 Topics 내부 세션/메모리 기록을 동기화.
2026-07-05 00:10:59 +09:00

3.8 KiB

id, title, category, status, verification_status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, created_at, updated_at, review_reason, merge_history, tags, raw_sources, applied_in, github_commit
id title category status verification_status canonical_id aliases duplicate_of source_trust_level confidence_score created_at updated_at review_reason merge_history tags raw_sources applied_in github_commit
java-enum-constructor Java Enum Constructor Programming_Language draft conceptual
자바 열거형 생성자
B 0.88 2026-07-04 2026-07-04
java
programming
w3schools
oop
enums
constructor
https://www.w3schools.com/java/java_enum_constructor.asp

Java Enum Constructor

🎯 한 줄 통찰 (One-line insight)

An enum constructor MUST be private — and uniquely, if you forget to write private, Java adds it automatically rather than erroring, since enum constants can only ever be created by the enum itself when the constants are declared, never by outside code. [S1]

🧠 핵심 개념 (Core concepts)

  • Enum constructor — runs automatically once for each constant when the enum is loaded; cannot be called manually. [S1]
  • Per-constant argumentsLOW("Low level"), MEDIUM("Medium level"), HIGH("High level"); passes a distinct value to the constructor for each constant. [S1]
  • Private-only constructor — must be private; Java auto-adds it if omitted. [S1]
  • Getter for constant data — a regular method (e.g. getDescription()) exposes the field set by the constructor. [S1]
  • Combines with values() — looping via values() while also calling the getter on each constant. [S1]

📖 세부 내용 (Details)

  • Enum with constructor and field: enum Level { LOW("Low level"), MEDIUM("Medium level"), HIGH("High level"); private String description; private Level(String description) { this.description = description; } public String getDescription() { return description; } }. [S1]
  • Access: Level myVar = Level.MEDIUM; System.out.println(myVar.getDescription()); // "Medium level". [S1]
  • Loop with description: for (Level myVar : Level.values()) { System.out.println(myVar + ": " + myVar.getDescription()); } // LOW: Low level / MEDIUM: Medium level / HIGH: High level. [S1]

⚖️ 모순 및 업데이트 (Contradictions & updates)

  • 생성자의 private 강제성: private을 명시하지 않아도 Java가 자동으로 추가한다는 점이 명시됨(다른 생성자 규칙과 차별화). [S1]

🛠️ 적용 사례 (Applied in summary)

현재 발견된 실제 적용 사례가 없습니다 — 각 enum 상수에 설명 문자열을 부여하는 패턴은 상태 코드/레벨 표현의 실전 응용이다. [S1]

💻 코드 패턴 (Code patterns)

Enum with a private constructor assigning per-constant data (Java):

enum Level {
    LOW("Low level"),
    MEDIUM("Medium level"),
    HIGH("High level");

    private String description;
    private Level(String description) {
        this.description = description;
    }
    public String getDescription() {
        return description;
    }
}

검증 상태 및 신뢰도

  • 상태: draft
  • 검증 단계: conceptual
  • 출처 신뢰도: B (W3Schools — widely used educational reference, not a primary standards body)
  • 신뢰 점수: 0.88
  • 중복 검사 결과: 신규 생성 (New discovery)

🔗 지식 그래프 (Knowledge Graph)

📚 출처 (Sources)

📝 변경 이력 (Change history)

  • 2026-07-04: Initial draft synthesized from the W3Schools "Java Enum Constructor" page (Astra wiki-curation, P-Reinforce v3.1 format).