ตัวแปรให้พื้นที่เก็บข้อมูลที่มีชื่อซึ่งโปรแกรมของเราสามารถจัดการได้ ตัวแปรแต่ละตัวใน Java มีประเภทเฉพาะ ซึ่งกำหนดขนาดและเลย์เอาต์ของหน่วยความจำของตัวแปร ช่วงของค่าที่สามารถเก็บไว้ในหน่วยความจำนั้น และชุดของการดำเนินการที่สามารถนำไปใช้กับตัวแปรได้
ตัวแปรคงที่
ตัวแปรสแตติกเรียกอีกอย่างว่าตัวแปรคลาสและพบได้ทั่วไปในอ็อบเจ็กต์ของคลาส และตัวแปรนี้สามารถเข้าถึงได้โดยใช้ชื่อคลาสเช่นกัน
ตัวแปรไม่คงที่
ตัวแปรของคลาสที่ไม่คงที่จะเรียกว่าตัวแปรที่ไม่คงที่หรือตัวแปรอินสแตนซ์
ต่อไปนี้เป็นข้อแตกต่างที่สำคัญระหว่างตัวแปรคงที่และไม่คงที่
| ซีเนียร์ เลขที่ | Key | สแตติก | ไม่คงที่ |
|---|---|---|---|
| 1 | การเข้าถึง | ตัวแปรสแตติกสามารถเข้าถึงได้โดยสมาชิกแบบสแตติกและฟังก์ชันสมาชิกที่ไม่คงที่ | ไม่สามารถเข้าถึงตัวแปรที่ไม่คงที่โดยฟังก์ชันสมาชิกแบบคงที่ |
| 2 | การแบ่งปัน | ตัวแปรสแตติกทำหน้าที่เป็นตัวแปรส่วนกลางและแชร์กับอ็อบเจ็กต์ทั้งหมดของคลาส | ตัวแปรที่ไม่คงที่เป็นตัวแปรเฉพาะสำหรับวัตถุอินสแตนซ์ที่สร้างขึ้น |
| 3 | การจัดสรรหน่วยความจำ | ตัวแปรแบบคงที่ใช้พื้นที่น้อยลงและการจัดสรรหน่วยความจำจะเกิดขึ้นเพียงครั้งเดียว | ตัวแปรที่ไม่คงที่อาจใช้พื้นที่มากกว่า การจัดสรรหน่วยความจำอาจเกิดขึ้นในขณะใช้งาน |
| 4 | คำหลัก | ประกาศตัวแปรสแตติกโดยใช้คีย์เวิร์ดสแตติก | ตัวแปรปกติไม่จำเป็นต้องมีคีย์เวิร์ดพิเศษใดๆ |
ตัวอย่างตัวแปรคงที่และตัวแปรไม่คงที่
JavaTester.java
public class JavaTester {
public int counter = 0;
public static int staticCounter = 0;
public JavaTester(){
counter++;
staticCounter++;
}
public static void main(String args[]) {
JavaTester tester = new JavaTester();
JavaTester tester1 = new JavaTester();
JavaTester tester2 = new JavaTester();
System.out.println("Counter: " + tester2.counter);
System.out.println("Static Counter: " + tester2.staticCounter);
}
} ผลลัพธ์
Counter: 1 Static Counter: 3