Skip to main content

วิธีการคงที่คืออะไร?

วิธีการเขียนโปรแกรมคอมพิวเตอร์ที่มุ่งเน้นวัตถุที่ประกาศในชั้นเรียน แต่ไม่ได้ขึ้นอยู่กับการสร้างอินสแตนซ์เฉพาะของคลาสนั้นเรียกว่าวิธีการคงที่ภาษาการเขียนโปรแกรมส่วนใหญ่รวมถึงคำหลักคงที่ในการประกาศวิธีการที่จะสร้างวิธีการคงที่วิธีการเหล่านี้เป็นไปอย่างเคร่งครัดกับชั้นเรียนที่มีอยู่ในและไม่ไปที่วัตถุใด ๆ ที่สร้างอินสแตนซ์จากคลาสนั้นพวกเขามักจะเรียกว่าวิธีการคลาส.

ชื่อตัวอักษรของคลาสมักใช้เพื่อเข้าถึงวิธีการคงที่แทนที่จะอ้างถึงด้วยชื่อของวัตถุอินสแตนซ์มันอนุญาตให้ใช้ชื่อวัตถุเพื่ออ้างถึงวิธีการเหล่านี้ แต่มันก็ท้อแท้อย่างยิ่งหากมีการใช้ชื่อวัตถุบุคคลที่อ่านรหัสอาจสร้างความสับสนให้กับวิธีการเหล่านี้ด้วยวิธีการอินสแตนซ์

วิธีการคงที่มักจะใช้ในคลาสยูทิลิตี้ที่ไม่ได้ขึ้นอยู่กับตัวแปรอินสแตนซ์จากคลาสใดก็ได้พวกเขายังใช้เมื่อโปรแกรมเมอร์ต้องการเข้าถึงวิธีการ แต่ไม่จำเป็นต้องทำอินสแตนซ์คลาสที่มีอยู่ในคลาสยูทิลิตี้มักจะไม่ได้รับการยกตัวอย่างเป็นวัตถุมันจะผิดปกติสำหรับวิธีการยูทิลิตี้ที่จะต้องแก้ไขข้อมูลวัตถุวิธีการจากคลาส java.lang.math เช่น pow () จะเป็นตัวอย่างของวิธีการใช้วิธีการประเภทนี้ในคลาสยูทิลิตี้

วิธีการอินสแตนซ์สามารถเข้าถึงตัวแปรอินสแตนซ์โดยตรงตัวแปรคงที่วิธีการอินสแตนซ์และวิธีการคงที่วิธีการคงที่ไม่สามารถเข้าถึงตัวแปรอินสแตนซ์และวิธีการอินสแตนซ์ได้โดยตรงเนื่องจากลักษณะของวิธีการอินสแตนซ์ที่มีการเข้าถึงสมาชิกชั้นเรียนได้ดีกว่าวิธีการคงที่วิธีการอินสแตนซ์เป็นประเภทของวิธีการที่ใช้ตามปกติในชั้นเรียนปกติ

ข้อเสียเปรียบที่สำคัญอย่างหนึ่งของวิธีการคงที่เกิดขึ้นในระหว่างการสืบทอดเมื่อใช้ polymorphismตราบใดที่วิธีการคงที่ของผู้ปกครองยังไม่ได้ประกาศขั้นสุดท้ายวิธีการคงที่ของเด็กเดียวกันสามารถเขียนรหัสในชั้นเด็กราวกับว่ามันถูกแทนที่นี่คือเทคนิคที่เรียกว่าการซ่อนแทนที่จะเอาชนะเนื่องจากวิธีการคงที่ไม่สามารถถูกแทนที่ได้

เมื่อใช้การซ่อนถ้าวิธีการคงที่ของพาเรนต์ถูกเข้าถึงโดยใช้ชื่อคลาสจะใช้วิธีการหลักหากวิธีการคงที่ของเด็กที่มีการเข้าถึงโดยใช้ชื่อวัตถุจะใช้วิธีการของเด็กที่มีค่ามากกว่าปัญหาเกิดขึ้นเมื่อวัตถุเด็กถูก upcast เป็นผู้ปกครองในกรณีนี้การโทรไปยังวิธี upcast child static จะใช้วิธีการหลักแทนวิธีการที่คาดหวังของเด็กด้วย polymorphism ที่แท้จริงวิธีการของเด็กจะเป็นหนึ่งที่เปิดใช้งานหลังจาก upcast