แบบคงที่: (ตัวดัดแปลงแบบคงที่) เนื้อหาของการปรับเปลี่ยนแบบคงที่ในวัตถุที่มุ่งเน้นวัตถุเป็นของคลาสไม่เกี่ยวข้องโดยตรงกับวัตถุดังนั้นตัวแปรสมาชิกที่แก้ไขโดยสแตติกโดยทั่วไปเรียกว่าตัวแปรสมาชิกชั้นเรียนและวิธีการปรับเปลี่ยนแบบคงที่โดยทั่วไปเรียกว่า
การจำแนกประเภท:
1. ตัวแปรคงที่เรียกว่าตัวแปรคงที่หรือตัวแปรคลาส ประเภทอื่นเป็นตัวแปรที่ไม่ได้รับการแก้ไขโดยคงที่เรียกว่าตัวแปรอินสแตนซ์
2. วิธีการคงที่หรือที่เรียกว่าวิธีการคงที่หรือวิธีการคลาสไม่สามารถกำหนดตัวแปรคงที่ในวิธีการคงที่และวิธีการอินสแตนซ์ไม่สามารถ
3. บล็อกรหัสคงที่ในบล็อกคงที่คุณสามารถเข้าถึงตัวแปรคงที่และการโทรวิธีการคงที่
หมายเหตุ:
1. ถ้าสแตติกไม่ได้ขึ้นอยู่กับวัตถุใด ๆ ไม่มีวิธีนี้
2. วิธีการคงที่ไม่สามารถเรียกใช้วิธีที่ไม่คงที่ แต่วิธีที่ไม่คงที่สามารถเรียกวิธีการคงที่
3. วิธีการหรือตัวแปรที่แก้ไขโดยสแตติกไม่จำเป็นต้องพึ่งพาวัตถุสำหรับการเข้าถึง ตราบใดที่คลาสถูกโหลดพวกเขาสามารถเข้าถึงได้ผ่านชื่อคลาส
4. วิธีการคงที่ไม่สามารถเขียนใหม่ได้ เมื่อคลาสย่อยและคลาสแม่มีวิธีการคงที่เหมือนกันการโทรเริ่มต้นคือวิธีการคงที่ของคลาสแม่และวิธีการคงที่ของคลาสย่อยจะถูกซ่อนไว้
5. บล็อกคงที่โดยทั่วไปจะใช้เพื่อเริ่มต้นตัวแปรคงที่ในชั้นเรียน ขึ้นอยู่กับเนื้อหาของการดัดแปลงแบบคงที่หลักการของคำจำกัดความแรกและการดำเนินการครั้งแรกจะถูกติดตาม
6. ถ้าตัวแปรหรือวิธีการมักเรียกใช้ให้ใช้การปรับเปลี่ยนแบบคงที่ มิฉะนั้นให้ใช้น้อยลงเพื่อหลีกเลี่ยงการรั่วไหลของหน่วยความจำ
ตัวอย่างรหัสของตัวแปรคงที่:
การทดสอบระดับสาธารณะ {คงที่ int a = 1; // ตัวแปรคงที่ int b = 2; // อินสแตนซ์ตัวแปรโมฆะสาธารณะคงที่หลัก (สตริง [] args) {system.out.println (test.a); //system.out.print(a); system.out.println(b); // ตัวแปรเอาต์พุตโดยตรง B จะรายงานการทดสอบข้อผิดพลาด t = การทดสอบใหม่ (); // สร้างอินสแตนซ์วัตถุ System.out.println (TB); // ตัวแปรการเรียกวัตถุ}}ตัวอย่างของรหัสสำหรับวิธีการคงที่:
การทดสอบระดับสาธารณะ {คงที่ int a = 1; // ตัวแปรคงที่ int b = 2; // อินสแตนซ์ตัวแปรโมฆะคงที่ a () {// วิธีการคงที่ b (); // มีการรายงานข้อผิดพลาดวิธีการคงที่ไม่สามารถเรียกใช้วิธีการที่ไม่คงที่ System.out.println (test.a); //system.out.print(a); }void b () {// วิธีการที่ไม่คงที่ test.a (); // a (); วิธีที่ไม่คงที่สามารถเรียกวิธีการแบบคงที่ System.out.println (b); System.out.println (test.a); //system.out.print(a);} public static void main (string [] args) {test.a (); // a (); b (); // มีการรายงานข้อผิดพลาดวิธีการที่ไม่คงที่จะต้องเรียกผ่านการทดสอบวัตถุอินสแตนซ์ t = การทดสอบใหม่ (); tb ();}}/**สามารถเขียนใหม่*/คลาส staticson ขยายการทดสอบ {// subclass สืบทอดคลาสแม่ void a () {// ข้อผิดพลาด วิธีการของคลาสย่อยการพูดอย่างเคร่งครัดไม่ใช่วิธีการคงที่ของคลาสแม่}}ตัวอย่างของรหัสบล็อกคงที่:
การทดสอบระดับสาธารณะ {int c = 3; int คงที่ a = 1; int คงที่ b = 2; คงที่ {a = 10; b = 20; c = 30; // รายงานข้อผิดพลาดตัวแปรในบล็อกคงที่จะต้องเป็นตัวแปรคงที่ System.out.println (a+b);} โมฆะสาธารณะคงที่หลัก (สตริง [] args) {ทดสอบ t = การทดสอบใหม่ (); system.out.println (tc); // เรียกใช้ตัวแปรคงที่ก่อนจากนั้นเรียกใช้ตัวแปรอินสแตนซ์}} รอบชิงชนะเลิศ: เข้าใจว่าไม่เปลี่ยนรูป
หมายเหตุ:
1. สุดท้ายและคงที่มักใช้ร่วมกัน
2. ตัวแปรที่แก้ไขโดยสุดท้ายสามารถกำหนดได้เพียงครั้งเดียว
3. วิธีสุดท้ายไม่สามารถเขียนใหม่ได้ แต่สามารถบรรทุกเกินพิกัดได้
4. คลาสสุดท้ายไม่สามารถสืบทอดได้
5. คำหลักสองคำสุดท้ายและนามธรรมตรงข้ามและเป็นไปไม่ได้ที่จะปรับเปลี่ยนคลาสในเวลาเดียวกัน เพราะไม่สามารถเขียนใหม่ขั้นสุดท้ายได้และต้องเขียนบทคัดย่อใหม่
6. คำหลักสุดท้ายนั้นแตกต่างจากคำหลักสุดท้ายซึ่งใช้สำหรับการจัดการข้อยกเว้น
7. ในกรณีส่วนใหญ่สุดท้ายไม่ได้ใช้ในการแก้ไขวิธีการและคลาสเนื่องจากไม่สามารถปรับขนาดได้
8. สุดท้ายสามารถใช้ในสภาพแวดล้อมที่แน่นอนเพื่อปรับปรุงประสิทธิภาพการทำงานของโปรแกรมและเพิ่มประสิทธิภาพโครงสร้างของโปรแกรม
ตัวอย่างของรหัสของตัวแปรสุดท้ายและคลาสสุดท้าย:
การทดสอบระดับสุดท้ายของสาธารณะ {สุดท้ายคงที่ int a = 1; คงที่ {a = 10; // รายงานข้อผิดพลาดการดำเนินการที่ได้รับมอบหมายเพียงครั้งเดียวเท่านั้นที่สามารถทำได้}}} คลาส Finalson ขยายการทดสอบ {// รายงานข้อผิดพลาดคลาสสุดท้ายไม่สามารถสืบทอดได้}รหัสตัวอย่างของวิธีสุดท้าย:
การทดสอบระดับสาธารณะ {สุดท้ายคงที่ int a = 1; void สุดท้าย a () {// วิธีการขั้นสุดท้าย system.out.println (a);}} คลาส FinalTest ขยายการทดสอบ {void a () {// ข้อผิดพลาดถูกรายงานวิธีสุดท้ายไม่สามารถเขียนได้