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

ความแตกต่างระหว่างค่าคงที่และตัวแปรสุดท้ายใน Java?


ค่าคงที่ใน Java

ตัวแปรคงที่คือตัวแปรที่มีค่าคงที่และมีเพียงสำเนาเดียวที่มีอยู่ในโปรแกรม เมื่อคุณประกาศตัวแปรคงที่และกำหนดค่าให้กับตัวแปรนั้น คุณจะไม่สามารถเปลี่ยนค่าของตัวแปรนั้นได้อีกตลอดทั้งโปรแกรม

ไม่รองรับค่าคงที่ในภาษา C ใน Java (โดยตรง) แต่คุณยังสามารถสร้างค่าคงที่ได้โดยการประกาศตัวแปรสแตติกและค่าสุดท้าย

  • เมื่อคุณประกาศตัวแปรสแตติกแล้ว ตัวแปรนั้นจะถูกโหลดเข้าสู่หน่วยความจำในเวลาคอมไพล์ นั่นคือมีเพียงสำเนาเดียวเท่านั้นที่มีให้

  • เมื่อคุณประกาศตัวแปรขั้นสุดท้ายแล้ว คุณจะไม่สามารถแก้ไขค่าของตัวแปรได้อีก

ตัวอย่าง

class Data {
   static final int integerConstant = 20;
}
public class ConstantsExample {
   public static void main(String args[]) {
      System.out.println("value of integerConstant: "+Data.integerConstant);
   }
}

ผลลัพธ์

value of integerConstant: 20

ตัวแปรสุดท้ายใน Java

เมื่อคุณประกาศตัวแปรขั้นสุดท้ายแล้ว คุณจะไม่สามารถเปลี่ยนค่าได้ หากคุณพยายามทำเช่นนั้น ข้อผิดพลาดในการคอมไพล์จะถูกสร้างขึ้น

ตัวอย่าง

public class FinalExample {
   public static void main(String args[]) {
      final int num = 200;
      num = 2544;
   }
}

ผลลัพธ์

FinalExample.java:4: error: cannot assign a value to final variable num
   num = 2544;
   ^
1 error

ความแตกต่างหลัก ระหว่างตัวแปรสุดท้ายและค่าคงที่ (คงที่และสุดท้าย) คือ หากคุณสร้างตัวแปรสุดท้ายโดยไม่มีคำหลักแบบคงที่ แม้ว่าค่าของตัวแปรนั้นจะไม่สามารถแก้ไขได้ สำเนาของตัวแปรจะถูกสร้างขึ้นทุกครั้งที่คุณสร้างวัตถุใหม่ โดยที่ค่าคงที่ไม่สามารถแก้ไขได้และมีเพียงสำเนาเดียวตลอดทั้งโปรแกรม ตัวอย่างเช่น ลองพิจารณาโปรแกรม Java ต่อไปนี้

ตัวอย่าง

class Data {
   final int integerConstant = 20;
}
public class ConstantExample {
   public static void main(String args[]) {
      Data obj1 = new Data();
      System.out.println("value of integerConstant: "+obj1.integerConstant);
      Data obj2 = new Data();
      System.out.println("value of integerConstant: "+obj2.integerConstant);
   }
}

ผลลัพธ์

value of integerConstant: 20
value of integerConstant: 20

ที่นี่ เราได้สร้างตัวแปรสุดท้ายและพยายามพิมพ์ค่าของมันโดยใช้สองวัตถุ ค่าความคิดของตัวแปรจะเท่ากันทั้งสองกรณี เนื่องจากเราใช้วัตถุที่แตกต่างกันสำหรับแต่ละวัตถุ จึงเป็นสำเนาของตัวแปรจริง

ตามคำจำกัดความของค่าคงที่ คุณต้องมีสำเนาตัวแปรเดียวตลอดทั้งโปรแกรม (คลาส)

ดังนั้น ในการสร้างค่าคงที่เป็นคำจำกัดความของ pert คุณต้องประกาศให้เป็นค่าคงที่และค่าสุดท้าย