บทความนี้วิเคราะห์การใช้งานแบบคงที่ใน Java สั้น ๆ และส่วนใหญ่ห้าด้าน: ตัวแปรสมาชิกคงที่, วิธีการคงที่, บล็อกคงที่, คลาสภายในแบบคงที่และแพ็คเกจคงที่
ก่อนอื่นมาพูดถึงความแตกต่างระหว่างวัตถุคงที่และวัตถุที่ไม่คงที่ในตาราง:
| วัตถุคงที่ | วัตถุที่ไม่คงที่ | |
| การระบุแหล่งที่มา | ชั้นเรียนมี | แต่ละอินสแตนซ์ของชั้นเรียนเป็นเจ้าของอย่างอิสระ |
| การจัดสรรหน่วยความจำ | แก้ไขในพื้นที่หน่วยความจำ | การกำหนดคลาสพันธมิตร |
| การจัดสรรลำดับอวกาศ | จัดลำดับความสำคัญของการจัดสรรพื้นที่วัตถุแบบคงที่ | ลำดับความสำคัญจัดสรรพื้นที่วัตถุคงที่และสิ่งเดียวกันนั้นเป็นจริงสำหรับการเริ่มต้น |
1 ตัวแปรคงที่วิธีการคงที่บล็อกสแตติก
วัตถุแบบคงที่และวิธีการคงที่ได้รับการตกแต่งด้วยคำหลักคงที่ในวัตถุและวิธีการดั้งเดิมซึ่งบ่งชี้ว่าคลาสสามารถเรียกสิ่งเหล่านี้ได้โดยตรงโดยไม่ต้องทำอินสแตนซ์ก่อนที่จะเรียกพวกเขา ประโยชน์คือ:
1-ข้อมูลของวัตถุคงที่มีความเป็นเอกลักษณ์ทั่วโลกและสามารถรับรองความเป็นเอกลักษณ์ของข้อมูลได้
2-ง่ายต่อการอ้างเพียงใช้ชื่อคลาสและวิธีการ (คุณสมบัติ) โดยตรงไม่จำเป็นต้องได้รับและตั้งค่า
แน่นอนวิธีการคงที่ (ตัวแปร, บล็อก) ก็มีข้อ จำกัด ที่สอดคล้องกัน:
สามารถเรียกใช้วิธีการที่ไม่ใช่แบบคงที่ 1-No (สามารถเรียกได้ว่ามีวิธีการคงที่เท่านั้น)
2-การเข้าถึงข้อมูลคงที่เท่านั้น
3-ไม่สามารถอ้างอิงได้หรือสุดยอด แต่อย่างใด
รหัสตัวอย่าง:
Public Class StaticeXercise {Public Static String Sky = "Jeyson"; String String สาธารณะ GetMysky (String Sky) {return Sky;} Static {System.out.println ("นี่คือเนื้อหาในบล็อกคงที่-"); วัตถุมีความเป็นเอกลักษณ์ทั่วโลกและสามารถมั่นใจได้ว่าข้อมูลนั้นไม่ซ้ำกัน * 2-การอ้างอิงนั้นสะดวกเพียงแค่ใช้ชื่อคลาสและวิธีการโดยไม่ต้องตั้งค่าและรับ *** กำหนดลำดับพื้นที่:* ก่อนจัดสรรพื้นที่วัตถุคงที่ก่อนแล้วจึงไม่คงที่ ลำดับการเริ่มต้นเป็นแบบเดียวกัน* *** ตัวแปรสมาชิกที่ปรับเปลี่ยนขั้นสุดท้ายและวิธีการสมาชิกสามารถเข้าใจได้ว่าเป็นตัวแปรทั่วโลก (ไม่มีแนวคิดของตัวแปรระดับโลกใน Java)* *** ข้อ จำกัด ของวัตถุแบบคงที่วิธีการและบล็อก: การทดสอบแบบคงที่อื่น ๆ testStatic1 () {system.out.println (Sky); system.out.println ("-----------------"); System.out.println (getMysky (Sky)); System.out.println ("------------------"); 2 ชั้นในแบบคงที่
เมื่อคลาสหนึ่งเกี่ยวข้องอย่างใกล้ชิดกับคลาสอื่น (คลาสภายนอก) และคลาสมักจะใช้เฉพาะเมื่อมีการใช้คลาสภายนอกคลาสสามารถใช้เป็นคลาสภายในแบบคงที่ สิ่งนี้สามารถสร้างได้โดยตรงเมื่อคลาสถูกโหลด ไม่จำเป็นต้องสร้างอินสแตนซ์
วิธีการใช้งาน: โหลดด้วยคลาสและเรียกคลาสภายนอกโดยตรง, คลาสภายใน, วัตถุคงที่ (วิธีการ)
รหัสตัวอย่าง:
คลาส Statictest {String String สาธารณะ sms = "To My Sky"; String String Public String getSms () {return sms;}/*** คลาสภายในแบบคงที่**** สถานการณ์การใช้งาน:*คลาสภายในมีความสัมพันธ์อย่างใกล้ชิดกับชั้นนอก ชั้นเรียนภายใน วัตถุคงที่ (วิธีการ)*/คลาสคงที่ innerstatic {สตริงสุดท้ายคงที่ mysky = "My Final Sky";}} @testpublic เป็นโมฆะ teststatic2 () {system.out.println (statictest.innerstatic.mysky);}} 2 แพ็คเกจคู่มือแบบคงที่
หากคลาสที่วิธีการคงที่ที่คุณต้องการใช้ไม่ได้อยู่ในแพ็คเกจเดียวกับคลาสปัจจุบันคุณสามารถใช้แพ็คเกจการจัดส่งแบบคงที่ ด้วยวิธีนี้วิธีการคงที่หรือตัวแปรที่คุณต้องการใช้นั้นเทียบเท่ากับการมองเห็นได้โดยตรงในชั้นเรียนและไม่จำเป็นต้องเรียกชื่อคลาสหรือตัวแปรสแตติก
วิธีใช้:
นำเข้าชื่อแพ็คเกจคงที่ชื่อตัวแปรสมาชิกคงที่ (เมธอด)
ผลประโยชน์:
ตัวแปรและวิธีการคงที่ที่นำเข้าสามารถมองเห็นได้โดยตรงในคลาสนี้และใช้โดยตรง
อันตราย:
ในระดับหนึ่งความสามารถในการอ่านรหัสจะลดลง
ตัวอย่างรหัส:
ชั้นเรียนสาธารณะ MystaticImportTest {สาธารณะคงที่หมายเลข int สุดท้าย = 55; โมฆะคงที่สาธารณะ getMywords () {system.out.println ("สวัสดีนี่คือการทดสอบแพ็คเกจตะกั่วแบบคงที่");}} นำเข้า com.generic.mystaticimporttest.number; แบบคงที่*/คลาสสาธารณะ staticexercise {/*** แพ็คเกจตะกั่วคงที่* *** วิธีการใช้งาน:* นำเข้าโดยตรงกับตัวแปรและวิธีการที่สอดคล้องกัน: (นำเข้าชื่อแพ็คเกจคงที่ชื่อคลาส. ตัวแปรสมาชิกคงที่ ตัวแปรสามารถมองเห็นได้โดยตรงในชั้นเรียนนี้ไม่จำเป็นต้องให้ชื่อคลาส* *** ข้อเสีย* ในระดับหนึ่งลดความสามารถในการอ่านรหัส*/@testpublic เป็นโมฆะ teststatic3 () {// หลังจากนำเข้าแบบคงที่คุณสามารถใช้ int mynumber = number;ข้างต้นเป็นการวิเคราะห์สั้น ๆ เกี่ยวกับการใช้คำหลักคงที่ใน Java ที่แนะนำโดยบรรณาธิการ ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!