--- id: java-class-attributes title: "Java Class Attributes" category: "Programming_Language" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["fields", "자바 클래스 속성"] duplicate_of: "" source_trust_level: "B" confidence_score: 0.9 created_at: 2026-07-04 updated_at: 2026-07-04 review_reason: "" merge_history: [] tags: ["java", "programming", "w3schools", "oop", "attributes"] raw_sources: ["https://www.w3schools.com/java/java_class_attributes.asp"] applied_in: [] github_commit: "" --- # [[Java Class Attributes]] ## 🎯 한 줄 통찰 (One-line insight) Attributes on separate object instances are fully independent — changing `myObj2.x` to 25 leaves `myObj1.x` at its original 5, demonstrating that each object carries its own copy of non-static attribute state rather than sharing it. [S1] ## 🧠 핵심 개념 (Core concepts) - **Attribute** — a variable declared inside a class; also called a "field". [S1] - **Dot syntax access** — `myObj.x` reads or writes an attribute via an object reference. [S1] - **Mutation vs. override** — assigning a new value to an uninitialized field vs. changing an already-initialized field, functionally the same mechanism. [S1] - **`final`** — prevents overriding an attribute's value after initialization; introduced here as a preview of the Modifiers chapter. [S1] - **Per-object independence** — each object's attributes are separate; modifying one instance doesn't affect another. [S1] ## 📖 세부 내용 (Details) - Access: `Main myObj = new Main(); System.out.println(myObj.x);`. [S1] - Modify: `myObj.x = 40;`. [S1] - Final (immutable) attribute: `final int x = 10; ... myObj.x = 25; // Error: cannot assign a value to a final variable`. [S1] - Independent instances: `myObj2.x = 25; System.out.println(myObj1.x); // 5 (unchanged) System.out.println(myObj2.x); // 25`. [S1] - Multiple attributes: `String fname = "John"; String lname = "Doe"; int age = 24;`. [S1] ## ⚖️ 모순 및 업데이트 (Contradictions & updates) 소스에서 모순되는 정보는 발견되지 않음. ## 🛠️ 적용 사례 (Applied in summary) 현재 발견된 실제 적용 사례가 없습니다 — final 키워드로 PI(3.14159...)처럼 불변 상수를 표현하는 예시가 실전 적용의 대표 사례다. [S1] ## 💻 코드 패턴 (Code patterns) Independent attribute state across objects (Java): ```java Main myObj1 = new Main(); // Object 1 Main myObj2 = new Main(); // Object 2 myObj2.x = 25; System.out.println(myObj1.x); // Outputs 5 System.out.println(myObj2.x); // Outputs 25 ``` ## ✅ 검증 상태 및 신뢰도 - **상태:** draft - **검증 단계:** conceptual - **출처 신뢰도:** B (W3Schools — widely used educational reference, not a primary standards body) - **신뢰 점수:** 0.90 - **중복 검사 결과:** 신규 생성 (New discovery) ## 🔗 지식 그래프 (Knowledge Graph) - **상위/루트:** [[Java Tutorial]] - **관련 개념:** [[Java Classes]], [[Java Class Methods]], [[Java Modifiers]], [[Java Constants Final]] - **참조 맥락:** 클래스 변수(필드)의 접근/수정 — final 키워드는 Modifiers 챕터에서 심화. ## 📚 출처 (Sources) - [S1] W3Schools — Java Class Attributes — https://www.w3schools.com/java/java_class_attributes.asp ## 📝 변경 이력 (Change history) - 2026-07-04: Initial draft synthesized from the W3Schools "Java Class Attributes" page (Astra wiki-curation, P-Reinforce v3.1 format).