ผลการดำเนินงาน:
เอฟเฟกต์คอนโซล:
-
ส่วนรหัส
-
/hello_test/src/com/b510/test/StaticTest.java
-
* ความแตกต่างเมื่อโปรแกรมกำลังทำงาน: ตัวแปรอินสแตนซ์เป็นคุณสมบัติของวัตถุ และต้องสร้างวัตถุอินสแตนซ์<br>
* เฉพาะตัวแปรอินสแตนซ์เท่านั้นที่จะได้รับการจัดสรรพื้นที่ และตัวแปรอินสแตนซ์นี้สามารถใช้ได้ ตัวแปรคงที่ไม่ได้เป็นของ<br>
* วัตถุอินสแตนซ์ แต่เป็นของคลาส ดังนั้นจึงเรียกว่าตัวแปรคลาส ตราบใดที่โปรแกรมโหลดโค้ดไบต์ของคลาส<br>
* หากไม่มีการสร้างออบเจ็กต์อินสแตนซ์ใดๆ ตัวแปรคงที่จะได้รับการจัดสรรพื้นที่และสามารถใช้ตัวแปรคงที่ได้ <br>
* กล่าวโดยสรุป ตัวแปรอินสแตนซ์จะต้องสร้างออบเจ็กต์ก่อนจึงจะสามารถใช้ผ่านออบเจ็กต์นี้ได้ ในขณะที่ตัวแปรคงที่สามารถทำได้<br>
* ใช้ชื่อคลาสโดยตรงในการอ้างอิง ตัวอย่างเช่น สำหรับโปรแกรมต่อไปนี้ ไม่ว่าจะสร้างออบเจ็กต์อินสแตนซ์จำนวนเท่าใด<br>
* มีการจัดสรรตัวแปร <code>staticInt</code> เพียงตัวเดียวเท่านั้น และทุกครั้งที่มีการสร้างออบเจ็กต์อินสแตนซ์ <br>
* <code>staticInt</code> นี้จะเพิ่มขึ้น 1; อย่างไรก็ตาม ทุกครั้งที่สร้างออบเจ็กต์อินสแตนซ์ <code>random</code> จะถูกจัดสรร<br>
* กล่าวคือ สามารถจัดสรร <code>สุ่ม</code> หลายรายการได้ และค่าของ <code>สุ่ม</code> แต่ละรายการจะเพิ่มขึ้นเพียงครั้งเดียวเท่านั้น <br>
-
* @author <a href="mailto:[email protected]">hongten</a>
* @วันที่ 2013-3-2
-
StaticTest ระดับสาธารณะ {
int คงที่ส่วนตัว staticInt = 2;
int ส่วนตัวสุ่ม = 2;
การทดสอบแบบคงที่สาธารณะ () {
คงที่Int++;
สุ่ม++;
System.out.println("staticInt = "+staticInt+" สุ่ม = "+สุ่ม);
-
โมฆะสาธารณะคงหลัก (สตริง [] args) {
การทดสอบ StaticTest = StaticTest ใหม่ ();
StaticTest test2 = StaticTest ใหม่ ();
-
-