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

ความแตกต่างระหว่างตัวแปรสแตติกและไม่ใช่สแตติกใน Java


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