[Tutorial] สอนภาษา .Net :: ตอนที่ 03 Static และ Instance คืออะไร

เงื่อนข้อตกลงในการใช้บทความนี้

จากตอนที่ 1 และ 2 หลายท่านคงสังเกตุเห็นคำว่า Static และ Instance กันมาบ้างแล้ว หลายท่านอาจไม่ได้ใส่ใจอะไรกับ 2 คำนี้
แต่ 2 คำนี้มีความสำคัญระดับเชิงโครงสร้างอย่างมาก ซึ่งโดยปรกติแล้วจะกล่าวถึงหลังจากศึกษา OOP ขึ้นไปในระดับสูง
แต่ผมเห็นว่าการทำความเข้าใจเกี่ยวกับ 2 คำนี้เป็นสิ่งจำเป็นอย่างมากสำหรับการวางรากฐานในการเขียนโปรแกรม

ซึ่งเมื่อบอกว่าระดับเชิงโครงสร้างนั้นผมหมายถึง Class, Method ตลอดจน Variant เลยครับ
แต่ก่อนจะไปพูดถึงเรื่องนี้ ผมขอลงรายละเอียดเกี่ยวกับ Variant กันก่อนนะครับ

Variant มีด้วยกันอยู่ 2 ประเภทได้แก่
1. Register Variant  เป็นจุดอ้างอิงที่ได้รับการลงทะเบียน หรือก็คือ Variant บน Class นั่นเองครับ

2. Local Variant เป็นจุดอ้างอิงภายใน Method นั้นๆ เท่านั้น
ซึ่งจะไม่ได้รับการลงทะเบียนและจะถูกทำลายทันทีหลังจากจบ Method แล้ว

ดังนี้ Local Variant จึงไม่ได้รับผลกระทบใดๆ จาก Static หรือ Instance ครับ

ทีนี้เรามาดูกันครับว่า Static และ Instance นั้นมีผลกระทบอย่างไรต่อโครงสร้างบ้าง

Static


- Class
จะทำให้โครงสร้างนั้นๆ ไม่สามารถสร้างใหม่หรือเพิ่มเติมต่อยอดโครงสร้างได้อีก

- Method
จะทำให้ชุดคำสั่งนั้นๆ ไม่ผูกติดกับโครงสร้างใหม่ใดๆ และไม่สามารถปรับเปลี่ยนชุดคำสั่งนั้นๆ ภายหลังได้(Override)

- Variant
จะทำให้จุดอ้างอิงนั้นๆ ไม่ถูกสร้างใหม่ ราวกับว่าทำให้จุดอ้างอิงนั้นๆ เป็นจุดอ้างอิงแบบ Unique สำหรับโครงสร้าง

Instance


- Class
โครงสร้างจะสามารถทำการสร้างตัวเองขึ้นใหม่ได้เรื่อยๆ และยังสามารถเพิ่มเติมต่อยอดโครงสร้างภายหลังได้อีกด้วย

- Method
ชุดคำสั่งนั้นๆ จะผูกติดโครงสร้างที่ถูกสร้างขึ้นมาทำให้เรียกใช้งานจุดอ้างอิงภายในโครงสร้างนั้นๆ ได้
อีกทั้งยังสามารถปรับเปลี่ยนชุดคำสั่งให้เหมาะกับโครงสร้างที่ต่อยอดขึ้นมาภายหลังได้อีกด้วย

- Variant
จุดอ้างอิงจะถูกผูกติดกับโครงสร้างที่ถูกสร้างขึ้นมาใหม่ ทำให้แต่ละโครงสร้างใหม่นั้นมีจุดอ้างอิงเป็นของตัวเอง



** Static Class นั้นไม่สามารถ มี Instance Method และ Instance Variant
แต่ Instance Class นั้นสามารถ มี Static Method และ Static Variant **

** Instance Class/Variant นั้นจะต้องใช้คำสั่งสร้างก่อนจึงจะใช้งานได้แต่ Static Class/Variant นั้นสามารถใช้งานได้เลย**



หากบทความนี้ถูกใจ เป็นประโยชน์ ขอรบกวนผู้อ่านกด [+] ด้วยนะครับ ขอบคุณครับ พาพันขอบคุณ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่