ความแตกต่างระหว่างวิธีคงที่และไม่คงที่

ความแตกต่างระหว่างวิธีคงที่และไม่คงที่
ความแตกต่างระหว่างวิธีคงที่และไม่คงที่

วีดีโอ: ความแตกต่างระหว่างวิธีคงที่และไม่คงที่

วีดีโอ: ความแตกต่างระหว่างวิธีคงที่และไม่คงที่
วีดีโอ: ทำไม มอสเฟต (MOSFET) จึงน่าเล่นมากกว่า Transistor BJT 2024, พฤศจิกายน
Anonim

วิธีคงที่เทียบกับวิธีไม่คงที่

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

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

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

คลาสสาธารณะ MyClass { โมฆะคงที่สาธารณะ MyStaticMethod() { // รหัสของวิธีสแตติก }

}

วิธีสแตติกที่กำหนดไว้ข้างต้นสามารถเรียกได้ดังนี้โดยใช้ชื่อของคลาสที่เป็นของมัน

MyClass. MyStaticMethod();

สิ่งสำคัญอย่างหนึ่งที่ควรทราบคือวิธีการแบบคงที่สามารถเข้าถึงสมาชิกแบบคงที่เท่านั้น

วิธีไม่คงที่คืออะไร

เมธอดที่ไม่คงที่หรือเมธอดอินสแตนซ์คือเมธอดที่เชื่อมโยงกับอ็อบเจ็กต์ในคลาส ดังนั้นเมธอดที่ไม่คงที่จึงถูกเรียกโดยใช้อ็อบเจ็กต์ของคลาสที่กำหนดเมธอดวิธีที่ไม่คงที่สามารถเข้าถึงสมาชิกที่ไม่คงที่เช่นเดียวกับสมาชิกของคลาส ในภาษาเชิงวัตถุจำนวนมาก (เช่น C++, C, Java) เมื่อเรียกใช้เมธอดที่ไม่คงที่ อ็อบเจ็กต์ที่เรียกใช้เมธอดจะถูกส่งต่อเป็นอาร์กิวเมนต์โดยปริยาย (เรียกว่า ข้อมูลอ้างอิง "นี่") ดังนั้น ภายในเมธอด คีย์เวิร์ดนี้สามารถใช้เพื่ออ้างถึงอ็อบเจกต์ที่เรียกว่าเมธอด ต่อไปนี้เป็นตัวอย่างการกำหนดวิธีการอินสแตนซ์ใน Java

คลาสสาธารณะ MyClass { โมฆะสาธารณะ MyInstanceMethod() { // รหัสของวิธีการอินสแตนซ์ }

}

วิธีการอินสแตนซ์ที่กำหนดไว้ข้างต้นสามารถเรียกได้ดังนี้โดยใช้วัตถุของคลาสที่เป็นของมัน

MyClass objMyClass=MyClass ใหม่ ();

objMyClass. MyInstanceMethod ();

วิธี Static กับ Non Static ต่างกันอย่างไร

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