วิธีคงที่เทียบกับวิธีไม่คงที่
วิธีการคือชุดของคำสั่งที่ดำเนินการเพื่อดำเนินงานเฉพาะ เมธอดสามารถรับอินพุตและผลิตเอาต์พุตได้ วิธีการแบบคงที่และแบบไม่คงที่เป็นวิธีการสองประเภทที่มีอยู่ในภาษาโปรแกรมเชิงวัตถุ วิธีแบบคงที่คือวิธีการที่เกี่ยวข้องกับคลาส เมธอดที่เกี่ยวข้องกับอ็อบเจ็กต์เรียกว่าเมธอด (อินสแตนซ์) ที่ไม่คงที่ ในภาษาเชิงวัตถุ เมธอดถูกใช้เป็นกลไกในการดำเนินการกับข้อมูลที่จัดเก็บไว้ในอ็อบเจ็กต์
วิธีคงที่คืออะไร
ในการเขียนโปรแกรมเชิงวัตถุ วิธีสแตติกคือวิธีที่เชื่อมโยงกับคลาสดังนั้นเมธอดแบบสแตติกจึงไม่มีความสามารถในการทำงานบนอินสแตนซ์เฉพาะของคลาส เมธอดสแตติกสามารถเรียกใช้ได้โดยไม่ต้องใช้อ็อบเจ็กต์ของคลาสที่มีเมธอดสแตติก ต่อไปนี้เป็นตัวอย่างการกำหนดวิธีการคงที่ใน Java สแตติกต้องใช้เมื่อกำหนดวิธีการสแตติกใน Java
คลาสสาธารณะ MyClass { โมฆะคงที่สาธารณะ MyStaticMethod() { // รหัสของวิธีสแตติก }
}
วิธีสแตติกที่กำหนดไว้ข้างต้นสามารถเรียกได้ดังนี้โดยใช้ชื่อของคลาสที่เป็นของมัน
MyClass. MyStaticMethod();
สิ่งสำคัญอย่างหนึ่งที่ควรทราบคือวิธีการแบบคงที่สามารถเข้าถึงสมาชิกแบบคงที่เท่านั้น
วิธีไม่คงที่คืออะไร
เมธอดที่ไม่คงที่หรือเมธอดอินสแตนซ์คือเมธอดที่เชื่อมโยงกับอ็อบเจ็กต์ในคลาส ดังนั้นเมธอดที่ไม่คงที่จึงถูกเรียกโดยใช้อ็อบเจ็กต์ของคลาสที่กำหนดเมธอดวิธีที่ไม่คงที่สามารถเข้าถึงสมาชิกที่ไม่คงที่เช่นเดียวกับสมาชิกของคลาส ในภาษาเชิงวัตถุจำนวนมาก (เช่น C++, C, Java) เมื่อเรียกใช้เมธอดที่ไม่คงที่ อ็อบเจ็กต์ที่เรียกใช้เมธอดจะถูกส่งต่อเป็นอาร์กิวเมนต์โดยปริยาย (เรียกว่า ข้อมูลอ้างอิง "นี่") ดังนั้น ภายในเมธอด คีย์เวิร์ดนี้สามารถใช้เพื่ออ้างถึงอ็อบเจกต์ที่เรียกว่าเมธอด ต่อไปนี้เป็นตัวอย่างการกำหนดวิธีการอินสแตนซ์ใน Java
คลาสสาธารณะ MyClass { โมฆะสาธารณะ MyInstanceMethod() { // รหัสของวิธีการอินสแตนซ์ }
}
วิธีการอินสแตนซ์ที่กำหนดไว้ข้างต้นสามารถเรียกได้ดังนี้โดยใช้วัตถุของคลาสที่เป็นของมัน
MyClass objMyClass=MyClass ใหม่ ();
objMyClass. MyInstanceMethod ();
วิธี Static กับ Non Static ต่างกันอย่างไร
เมธอดแบบคงที่คือเมธอดที่เชื่อมโยงกับคลาส ในขณะที่เมธอดที่ไม่ใช่สแตติกคือเมธอดที่เกี่ยวข้องกับอ็อบเจ็กต์ของคลาสคลาสจะต้องสร้างอินสแตนซ์ก่อนจึงจะเรียกใช้เมธอดที่ไม่ใช่สแตติก แต่เมธอดสแตติกไม่มีข้อกำหนดนี้ สามารถเรียกใช้ได้ง่ายๆ โดยใช้ชื่อของคลาสที่เก็บเมธอดแบบสแตติก ความแตกต่างที่สำคัญอีกประการหนึ่งคือวิธีการที่ไม่คงที่มักจะมีการอ้างอิงถึงวัตถุที่เรียกว่าวิธีการและสามารถเข้าถึงได้โดยใช้คำหลักนี้ภายในวิธีการ แต่คีย์เวิร์ดนี้ไม่สามารถใช้ในวิธีสแตติกได้เนื่องจากไม่ได้เชื่อมโยงกับออบเจกต์เฉพาะ