Constant คือตัวแปรที่ ค่าไม่สามารถเปลี่ยนแปลงได้หลังจากที่ถูกกำหนดแล้ว Java ไม่มี built-in support สำหรับ constants โดยตรง
Constant ทำให้โปรแกรมของเราอ่านและเข้าใจง่ายขึ้นสำหรับผู้อื่น นอกจากนี้ constant ยังถูก cached โดย JVM และแอปพลิเคชันของเรา ดังนั้นการใช้ constant สามารถปรับปรุง performance ได้
เพื่อกำหนดตัวแปรเป็น constant เราเพียงแค่เพิ่ม keyword "final" หน้าการประกาศตัวแปร
Syntax
final float pi = 3.14f;
คำสั่งด้านบนประกาศตัวแปร float "pi" เป็น constant ด้วยค่า 3.14f เราไม่สามารถเปลี่ยนค่า "pi" ได้ที่จุดไหนในโปรแกรม หากภายหลังพยายามทำด้วยคำสั่ง "pi=5.25f" Java จะโยน error ที่ compile time เอง ไม่บังคับว่าต้องกำหนดค่า constants ตอน initialization เสมอไป
ในตัวอย่างด้านล่าง เราสามารถกำหนด primitive data types (byte, short, int, long, float, double, boolean และ char) เป็น constants โดยเพียงแค่เพิ่ม keyword "final" ตอนประกาศตัวแปร
ตัวอย่าง
public class ConstantsDemo {
public static void main(String args[]) {
final byte var1 = 2;
final byte var2;
var2 = -3;
final short var3 = 32;
final short var4;
var4 = -22;
final int var5 = 100;
final int var6;
var6 = -112;
final long var7 = 20000;
final long var8;
var8 = -11223;
final float var9 = 21.23f;
final float var10;
var10 = -121.23f;
final double var11 = 20000.3223;
final double var12;
var12 = -11223.222;
final boolean var13 = true;
final boolean var14;
var14 = false;
final char var15 = 'e';
final char var16;
var16 = 't';
// Displaying values of all variables
System.out.println("value of var1 : "+var1);
System.out.println("value of var2 : "+var2);
System.out.println("value of var3 : "+var3);
System.out.println("value of var4 : "+var4);
System.out.println("value of var5 : "+var5);
System.out.println("value of var6 : "+var6);
System.out.println("value of var7 : "+var7);
System.out.println("value of var8 : "+var8);
System.out.println("value of var9 : "+var9);
System.out.println("value of var10 : "+var10);
System.out.println("value of var11 : "+var11);
System.out.println("value of var12 : "+var12);
System.out.println("value of var13 : "+var13);
System.out.println("value of var14 : "+var14);
System.out.println("value of var15 : "+var15);
System.out.println("value of var16 : "+var16);
}
}
ผลลัพธ์
value of var1 : 2 value of var2 : -3 value of var3 : 32 value of var4 : -22 value of var5 : 100 value of var6 : -112 value of var7 : 20000 value of var8 : -11223 value of var9 : 21.23 value of var10 : -121.23 value of var11 : 20000.3223 value of var12 : -11223.222 value of var13 : true value of var14 : false value of var15 : e value of var16 : t