มารู้จัก Static Method บนภาษา Java กันเถอะ

8 August 2013 9:46 PM Programming
java

คำสั่ง “static” นั้นถือเป็นอีก Keyword หนึ่งของภาษา Java ซึ่งมีไว้กำหนดคุณสมบัติให้กับ Method หรือ Variable บนภาษา Java โดยบทความนี้ผมจะมาแสดงตัวอย่างการกำหนดคุณสมบัติ Static ให้กับ Method ในภาษา Java ครับ

การกำหนดให้เมธอดเป็น Static

การกำหนดให้ Method อยู่ในรูปแบบ Static นั้นจะทำให้เราสามารถเรียกใช้ Method นั้นโดยไม่ต้องสร้าง Object ของ Class ขึ้นมา ตัวอย่างของ Static method ที่เราคุ้นเคยกันที่ดีได้แก่ method ที่ชื่อว่า main() นั้นเอง ซึ่งเป็น method หลักของ Java ทุกโปรแกรม

เหตุผลที่ต้องกำหนด Main method ให้เป็น Static นั้นเป็นเพราะว่า JVM จะได้สามารถเรียก Main method ในการเริ่มต้นโปรแกรมได้ทันที โดยไม่ต้องสร้าง Object ของ Class ขึ้นมาก่อน (ซึ่งเป็นข้อกำหนดของ JVM) เพื่อให้เข้าใจง่ายยิ่งขึ้นเรามาดูตัวอย่างกัน จาก Code โปรแกรมด้านล่างต่อไปนี้

จาก Code ด้านบนจะเห็นว่าเมื่อไม่ได้ใช้ Static เราจำเป็นต้องสร้าง Object ของ Class ที่ชื่อว่า Calculate โดยใช้ชื่อตัวแปรว่า foo เพื่อให้สามารถเรียกใช้งาน Method ที่ชื่อว่า bar ได้นั้นเอง แต่ถ้าหากเราสร้าง method bar ที่อยู่ใน Class Calculate ให้เป็น Static เราก็จะมีการเขียน Code ประมาณนี้

จะเห็นได้ว่าเราสามารถเรียกใช้ Method bar ได้เลยทันที โดยไม่ต้องสร้าง Object ของ Class Calculate มาก่อน

รู้สึกชีวิตง่ายขึ้นไหมครับ แต่!! เดียวก่อนนะครับ ไม่ใช่เราจะทำให้ทุก Method เป็น Static นะครับ เพราะการทำให้ Method เป็น static นั้นจะทำให้ Method นั้นถูกสร้างขึ้นมาทันที ที่เปิดโปรแกรม และทั้งโปรแกรมเมื่อเราสร้าง Object ของ Class นี้มาเท่าไหร่ก็ตาม เมื่อเรียกใช้ Method นี้ มันจะวิ่งเข้าหา Method นี้ของทุกๆ Object ที่ถูกสร้างขึ้นมาโดย Class นี้ มันไม่ได้วิ่งเข้าหาแค่ Object ที่เราสร้างขึ้นมานะครับ

ดังนั้น การจะใช้คำสั่ง Static ให้กับ Method นั้นต้องดูการออกแบบ Code และหลักการทำงานของโปรแกรมที่เราจะเขียนให้ดีก่อนจะใช้ครับ โดยส่วนตัวแล้วผมใช้ Static ทำ Singleton มากกว่า ซึ่งก็อยู่กับ Code style ของแต่ละคนครับ :)