ตัวแปรให้พื้นที่เก็บข้อมูลที่มีชื่อซึ่งโปรแกรมของเราสามารถจัดการได้ ตัวแปรแต่ละตัวใน 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