ค่าคงที่

ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับค่าคงที่ (constants) ในภาษา Java ตั้งแต่วิธีการประกาศค่าคงที่ การใช้งาน ประโยชน์และข้อได้เปรียบของการใช้งานค่าคงที่ และเรียนรู้เกี่ยวกับคำสั่ง final ที่สามารถใช้กับค่าคงที่และอื่นๆ

ค่าคงที่ คืออะไร

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

รูปแบบในการประกาศค่าคงที่นั้นคล้ายคลึงกับการประกาศตัวแปรทั่วไป แต่มันจะขึ้นต้นด้วยคำสั่ง final เพื่อบอกคอมไพเลอร์ว่ามันเป็นตัวแปรค่าคงที่

final dataType constantName = value;

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

สร้างและใช้งานค่าคงที่ในภาษา Java

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

public class Constant {

public static void main (String[] args) {
final float PI = 3.14f;

int r = 8;

System.out.println("Circle with radius: " + r );
System.out.println("Area = " + (PI * r * r ));
System.out.println("Circumference = " + (2 * PI * r ));
System.out.println("Volume = " + (4.0f / 3.0f * PI * r * r * r));
System.out.println("Surface Area = " + (4.0f * PI * r * r ));

r = 10;

System.out.println("\nCircle with radius: " + r );
System.out.println("Area = " + (PI * r * r ));
System.out.println("Circumference = " + (2 * PI * r ));
System.out.println("Volume = " + (4.0f / 3.0f * PI * r * r * r));
System.out.println("Surface Area = " + (4.0f * PI * r * r ));
}
}

ในตัวอย่างด้านบน เราได้ประกาศตัวแปรค่าคงที่ในคำสั่ง final float PI = 3.14f; โดยตัวแปรนี้เก็บค่า floating-point ของค่า PI เพื่อนำไปใช้ในการคำนวณหารายละเอียดของวงกลม เราสามารถใช้ identifier PI แทนค่า 3.14 ได้ทั้งหมด และผลลัพธ์ของโปรแกรมด้านล่าง

Circle with radius: 8
Area = 200.96
Circumference = 50.24
Volume = 2143.5735
Surface Area = 803.84

Circle with radius: 10
Area = 314.0
Circumference = 62.800003
Volume = 4186.667
Surface Area = 1256.0

ครั้งต่อไปคุณคิดว่ามันไม่ละเอียดเพียงพอ คุณสามารถเปลี่ยนค่าของ PI ได้ที่เดียว โดยเปลี่ยนแค่เป็น final float PI = 3.14159f; ค่า PI และค่าของ PI ทั้งหมดจะเปลี่ยนไป และจะได้ผลลัพธ์ดังนี้ ซึ่งขึ้นกับค่า PI ของคุณ

Circle with radius: 8
Area = 201.06177
Circumference = 50.26544
Volume = 2144.659
Surface Area = 804.2471

Circle with radius: 10
Area = 314.159
Circumference = 62.831802
Volume = 4188.787
Surface Area = 1256.636

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

import java.util.Scanner;

public class Constant {

public static void main(String[] args)
{
final int SIZE = 10;
int[] n = new int[SIZE];

Scanner reader = new Scanner(System.in);

for (int i = 0; i < SIZE; i++)
{
System.out.print("n[" + i + "] = ");
n[i] = reader.nextInt();
}

System.out.print(SIZE + " numbers in array: ");
for (int i = 0; i < SIZE; i++)
{
System.out.print(n[i] + ", ");
}
}

}

ในตัวอย่าง เป็นโปรแกรมที่สร้างอาเรย์ขนาดตามที่กำหนดของค่าคงที่ และหลังจากนั้นเรารับข้อมูลและแสดงผลข้อมูลในอาเรย์ออกมา

final int SIZE = 10;
int[] n = new int[SIZE];

ในตอนแรกของโปรแกรม เราได้ทำการประกาศค่าคงที่ SIZE ซึ่งมีค่าเท่ากับ 10 และนำไปสร้างอาเรย์ตามขนาดของค่าคงที่ที่กำหนด

Scanner reader = new Scanner(System.in);

ในคำสั่งนี้ เป็นการประกาศออบเจ็คสำหรับการรับค่าด้วยคลาส Scanner ซึ่งเราจะใช้รับค่าจากคีย์บอร์ดลงไปในอาเรย์ที่ได้สร้างขึ้น คลาสนี้มีหน้าที่จัดการเกี่ยวกับการรับค่าทาง Stream เช่น คีย์บอร์ด

for (int i = 0; i < SIZE; i++)
{
System.out.print("n[" + i + "] = ");
n[i] = reader.nextInt();
}

System.out.print(SIZE + " numbers in array: ");
for (int i = 0; i < SIZE; i++)
{
System.out.print(n[i] + ", ");
}

ต่อมาเราได้ใช้คำสั่ง For loop ในการวนอ่านค่าตามจำนวนของค่าคงที่ SIZE โปรแกรมจะทำการอ่านค่าตัวเลขลงในอาเรย์จนครับ เมธอด nextInt() เป็นเมธอดสำหรับการอ่านค่าของ Integer และหลังจากนั้นเราได้แสดงผลข้อมูลในอาเรย์โดยการใช้คำสั่ง For loop เช่นเดียวกัน

n[0] = 10
n[1] = 23
n[2] = 35
n[3] = 18
n[4] = 5
n[5] = 82
n[6] = 43
n[7] = 54
n[8] = 20
n[9] = 92
10 numbers in array: 10, 23, 35, 18, 5, 82, 43, 54, 20, 92,

นี่เป็นผลลัพธ์การทำงานของโปรแกรม

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

คำสั่ง final

คำสั่ง final หรือ final modifier นั้น นอกจากจะใช้กับตัวแปรแล้ว ยังใช้เกี่ยวกับการเขียนโปรแกรมแบบออบเจ็คด้วย โดยเมื่อใช้

  • final กับ method จะทำให้ method ไม่สามารถ override (การเขียนทับ) ได้โดย sub class
  • final กับ class จะทำให้ class นั้นไม่สามารถสือบทอด inherit ได้
final class NoInherit {
final void noOverride () {
...
}
}

ข้างบนเป็นตัวอย่างของคลาสและเมธอด ที่ใช้คำสั่ง final ในการสร้าง อย่างไรก็ตาม คุณจะเรียนเกี่ยวกับการโปรแกรมแบบออบเจ็คในภายหลัง มันเป็นพื้นฐานของภาษา Java และสำคัญที่คุณจะต้องรู้

ในบทนี้ คุณได้เรียนรู้เกี่ยวกับค่าคงที่ การสร้างและประโยชน์ในการใช้ของมันในภาษา Java และรู้จักเกี่ยวกับการใช้คำสั่ง final


บทความเกี่ยวกับ ค่าคงที่

ค่าคงที่ ในภาษา C

ค่าคงที่ (constant) เป็นตัวแปรที่ไม่สามารถเปลี่ยนแปลงค่าในภายหลังได้ ค่าของตัวแปรค่าคงที่จะต้องถูกกำหนดพร้อมกับการประกาศตัวแปรเสมอ ค่าคงที่สามารถเป็นข้อมูลประเ...

ค่าคงที่ ในภาษา C#

ค่าคงที่ เป็นตัวแปรที่ค่าของมันไม่สามารถเปลี่ยนแปลงได้หลังจากที่ถูกสร้างขึ้น และค่าของมันจะต้องถูกกำหนดให้ในตอนที่สร้างทันที เนื่องจากมันคือตัวแปรประเภทหนึ่ง กา...

ค่าคงที่ ในภาษา Visual Basic

ค่าคงที่ (constants) เป็นตัวแปรหรือประเภทของข้อมูลที่ไม่สามารถเปลี่ยนแปลงค่าได้ในภายหลัง นั่นหมายความว่ามันจะต้องกำหนดค่าก่อนการทำงานของคอมไพเลอร์เสมอ ค่าคงที่ท...

ค่าคงที่ ในภาษา C++

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

ค่าคงที่ ในภาษา PHP

ค่าคงที่ (Constants) คือค่าของ Literal ใดๆ ที่ถูกกำหนดให้กับตัวแปรค่าคงที่ ค่าคงที่จะไม่สามารถเปลี่ยนแปลงได้ภายในโปรแกรมและเป็นได้เพียงค่าเดียวตั้งแต่โปรแกรมเริ...