Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความแตกต่างระหว่าง Static และ Final ใน Java

static

  • ใช้กับ nested class, variable, method, block
  • ไม่ต้อง initialize ตอนประกาศ
  • เปลี่ยนค่าได้ (re-initialize)
  • เข้าถึงสมาชิก static ของคลาสเดียวกันได้
  • static method เรียก static member ได้อย่างเดียว
  • ไม่สามารถสร้าง object ของ static class ได้
  • static block ใช้ initialize static variables

final

  • คีย์เวิร์ดจำกัด class, method, variable
  • final class: ไม่ให้ extends
  • final method: ไม่ให้ override
  • final variable: ต้อง initialize ตอนประกาศ, ไม่ให้เปลี่ยนค่า

สรุปความแตกต่าง

คุณสมบัติstaticfinal
ประเภทModifier สำหรับ member/classKeyword จำกัดการเปลี่ยนแปลง
Variable initializationไม่บังคับตอนประกาศบังคับตอนประกาศ
เปลี่ยนค่า Variableได้ไม่ได้
Methodเป็นของ class ไม่ใช่ instanceไม่ให้ override
ClassNested static class (ไม่ใช่ top-level)ไม่ให้ extend