ในส่วนของการใช้คีย์เวิร์ด เรารู้บางอย่างเกี่ยวกับวิธีการคงที่แล้ว เพื่อป้องกันข้อผิดพลาดที่ไม่จำเป็นเมื่อใช้งาน ทุกคนจะต้องเข้าใจขอบเขตการใช้งานของมัน บทความนี้แบ่งประเด็นที่ควรทราบเมื่อใช้สแตติกออกเป็นสองประเด็น ด้านหนึ่งคือขอบเขตของการเข้าถึง และอีกด้านคือหมายเหตุเกี่ยวกับการเรียกใช้เมธอด
1. เมื่อใช้วิธีการคงที่ คุณสามารถเข้าถึงได้เฉพาะคุณสมบัติและวิธีการที่ประกาศแบบคงที่เท่านั้น แต่ไม่สามารถเข้าถึงคุณสมบัติและวิธีการที่ไม่ประกาศแบบคงที่ได้
แพ็คเกจ com.jk.ref; คนในชั้นเรียน{ ชื่อสตริง; ประเทศ String คงที่ส่วนตัว = "จีน"; คนสาธารณะ (ชื่อสตริง) { นี้.ชื่อ=ชื่อ; - โมฆะสาธารณะบอก () { System.out.println("ชื่อ:"+ชื่อ+" "+"ประเทศ:"+ประเทศ); - - *@กลับประเทศ - สาธารณะสตริงคงที่ getCountry() { ประเทศที่เดินทางกลับ; - - * @param country ประเทศที่จะตั้งค่า - โมฆะสาธารณะ setCountry (ประเทศสตริง) { People.country = ประเทศ; - - StaticDemo01 คลาสสาธารณะ { โมฆะคงที่สาธารณะ main (String [] args) { // TODO ต้นขั้ววิธีการสร้างอัตโนมัติ People.setCountry("เซี่ยงไฮ้"); People ps1=คนใหม่("จางซาน"); //People.country="เซี่ยงไฮ้"; ps1.บอก(); People ps2=คนใหม่("lisi"); // ps2.country="เซี่ยงไฮ้"; ps2.บอก(); ผู้คน ps3=คนใหม่("wangwu"); // ps3.country="เซี่ยงไฮ้"; ps3.บอก(); - -
2. การอ้างอิงคลาสพาเรนต์สามารถปรับเฉพาะเมธอดที่ถูกแทนที่ของคลาสพาเรนต์และคลาสลูกเท่านั้น จะไม่ถูกเขียนทับแต่ถูกบดบัง
TestMain คลาสสาธารณะ { โมฆะคงที่สาธารณะ main (String [] args) { Super sup = new Sub(); //Encapsulation (รูปร่างขึ้นด้านบน) sup.m1(); //การอ้างอิงคลาสพาเรนต์ไม่สามารถปรับเมธอด unoverridden ของคลาสย่อยได้ และเอาต์พุต mi เป็น Super sup.m2();//เรียกเมธอดคลาสย่อย m2 สืบทอดและสร้างเมธอดคลาสพาเรนต์ก่อน เขียนทับ (เขียนใหม่) เมธอดด้วยชื่อเมธอดเดียวกัน และเอาต์พุต m2 ใน Sub Sub sub = (Sub)sup; //Unboxing (รูปร่างลง) sub.m1(); //เรียกเมธอดคลาสย่อยแบบคงที่ m1 ขั้นแรกให้สร้างเมธอดคลาสพาเรนต์ ชื่อเมธอดเหมือนกัน ชื่อเมธอดเป็นเมธอดเดียวกัน เอาต์พุต m2 ใน Sub sub.m2();//เรียกเมธอดคลาสย่อย m2 สืบทอดและสร้างเมธอดคลาสพาเรนต์ก่อน เขียนทับ (เขียนใหม่) เมธอดด้วยชื่อเมธอดเดียวกัน และเอาต์พุต m2 ใน Sub - - คลาส Super { // คลาสพาเรนต์โมฆะสาธารณะคงที่ m1 () { // วิธีการคงที่คลาสพาเรนต์ System.out.println ("m1 ใน Super"); - โมฆะสาธารณะ m2 () { // วิธีการเรียนระดับพาเรนต์ System.out.println ("m2 ใน Super"); - - คลาสย่อยขยาย Super { // คลาสย่อยสาธารณะโมฆะคงที่ m1 () { // คลาสย่อยวิธีคงที่ System.out.println (“ m1 ในย่อย”); - โมฆะสาธารณะ m2 () { // วิธีคลาสย่อย System.out.println ("m2 ใน Sub"); - -
ข้างต้นคือจุดที่ควรทราบเมื่อใช้สแตติกใน Java ในระหว่างการดำเนินการเฉพาะ อย่าละเลยรายการการใช้งานทั้งสองนี้ จุดข้อผิดพลาดทั่วไปที่มือใหม่มักพบเมื่อฝึกซ้อม