A static method เป็นของ class และ non-static method เป็นของ object ของ class วิธีสแตติกสามารถเข้าถึงได้โดยตรงจากคลาส ในขณะที่เมธอดที่ไม่ใช่สแตติก (หรือเมธอดของอินสแตนซ์ที่ฉันชอบเรียก) จะต้องเข้าถึงได้จากอินสแตนซ์
เมธอดควรเป็นสแตติกและไม่ใช่สแตติกเมื่อใด
A สแตติกเมธอดเป็นของคลาสเอง และเมธอด non-static (aka instance) เป็นของแต่ละอ็อบเจ็กต์ที่สร้างขึ้นจากคลาสนั้น หากวิธีการของคุณทำอะไรบางอย่างที่ไม่ขึ้นอยู่กับลักษณะเฉพาะของคลาสของมัน ทำให้มันคงที่ (มันจะทำให้รอยเท้าของโปรแกรมเล็กลง)
คุณจะใช้วิธีที่ไม่คงที่เมื่อใด
วิธีการแบบไม่คงที่ใน Java สามารถเข้าถึงวิธีการและตัวแปรแบบคงที่ได้ดังนี้:
- วิธีที่ไม่คงที่สามารถเข้าถึงวิธีการแบบคงที่โดยไม่ต้องสร้างอินสแตนซ์ของคลาส
- เมธอดที่ไม่คงที่สามารถเข้าถึงตัวแปรสแตติกใดๆ ได้โดยไม่ต้องสร้างอินสแตนซ์ของคลาสเพราะตัวแปรสแตติกเป็นของคลาส
คุณควรใช้ฟังก์ชันสแตติกเมื่อใด
เมื่อคุณ ต้องการมีตัวแปรที่มีค่าเท่ากันเสมอสำหรับทุกวัตถุในชั้นเรียน ทำให้คงที่ตลอดไป หากคุณมีวิธีการที่ไม่ได้ใช้ตัวแปรอินสแตนซ์หรือวิธีการของอินสแตนซ์ใด ๆ คุณควรทำให้มันคงที่.
ความแตกต่างระหว่างฟิลด์คงที่และไม่คงที่คืออะไร
ตัวแปรสแตติกหรือฟิลด์เป็นของคลาส ไม่ใช่ของอ็อบเจกต์ใดๆ ของคลาส ตัวแปรสแตติกจะเริ่มต้นเมื่อโหลดคลาสขณะรันไทม์ ฟิลด์ที่ไม่คงที่คือฟิลด์อินสแตนซ์ของอ็อบเจ็กต์ สามารถเข้าถึงได้หรือเรียกใช้ผ่านการอ้างอิงวัตถุเท่านั้น