
ในบทความนี้เราจะเริ่มคุยกันถึงเรื่องของ Class และ Object กันนะครับ เพื่อที่จะปูพื้นฐานให้คุณผู้อ่านเกี่ยวกับการโปรแกรมแบบออปเจ็คโอเรียนเต็ดนั้น ผู้เขียนจะขอคุยคร่าว ๆ เกี่ยวกับมันในหัวข้อแรก ๆ นะครับ ผู้เขียนขออนุมาณเอาว่า คุณผู้อ่านได้ผ่านการเขียนโปรแกรมในบางภาษา เช่น ภาษาซี หรือภาษาอื่น ๆ มาบ้างแล้ว ส่วนคุณผู้อ่านที่มีความเข้าใจลึกซึ้งเกี่ยวกับเรื่อง Class และ Object อยู่แล้ว ก็สามารถข้ามบทความนี้ไปได้เลยนะครับ2. การเขียนโปรแกรมในยุคก่อน ๆ
สมมุติว่าคุณผู้อ่านกำลังเริ่มหัดเขียนโปรแกรมด้วยภาษาซีใหม่ ๆ ถ้าเราต้องการแสดงค่าเฉลี่ยบนหน้าจอคอมพิวเตอร์ของค่าสามค่าสองชุด 123, 321, 453 และ 24, 350, 289 ก็อาจจะเขียนโปรแกรมได้ดังนี้
โปรแกรมที่ 1
1 int a[3] = {123, 321, 453};
2 int b[3] = {24, 350, 289};
3
4 float aAve = (a[0]+a[1]+a[2])/3;
5 printf("Average value of %d, %d, %d is equal to %f\n", a[0], a[1], a[2], aAve);
6
7 float bAve = (b[0]+b[1]+b[2])/3;
8 printf("Average value of %d, %d, %d is equal to %f\n", b[0], b[1], b[2], bAve);
ค่าเฉลี่ยของเลขสองชุดดูไม่มีปัญหาอะไร เราสามารถก๊อปปี้สองบรรทัดที่ทำการคำนวณค่าเฉลี่ยมาแปะด้านล่าง แล้วแก้ไขตัวแปรนิดหน่อย แล้วเราก็ได้ค่าออกมานะครับ แต่ถ้าเกิดเราต้องการค่าเฉลี่ยของเลยสักร้อยชุดละครับ ปัญหาที่เราสามารถมองเห็นได้อย่างชัดเจนก็คือ
1. เราต้องก๊อปปี้เก้าสิบเก้าครั้ง
2. เราต้องแก้ตัวแปรเก้าสิบเก้าครั้ง
3. การตรวจสอบความผิดพลาดเป็นไปอย่างยุ่งยาก เนื่องจากเราต้องดูทีละบรรทัดว่าผิดหรือเปล่า
3. Function
ผู้ที่ได้ออกแบบภาษาในยุคแรก ๆ ก็ได้คิดค้นวิธีแก้ปัญหาแบบนี้ไว้แล้ว Function ก็ได้ถือกำเนิดขึ้นมาเพื่อทำให้การทำงานที่ซ้ำ ๆ กันง่ายขึ้น ในภาษาอื่น ๆ ก็มีสิ่งที่ทำงานคล้าย ๆ Function อยู่ แต่มีชื่อเรียกต่างกัน เช่น Procedure, Subroutine หรือ Method ซึ่งในภาษาจาวา เราก็เรียกมันว่า Method นั่นเองครับ
ฟังก์ชันนั้นมีประโยชน์ในการช่วยให้ผู้เขียนโปรแกรมสร้างการทำงานบางส่วนของโปรแกรมเก็บไว้ เพื่อใช้ได้อีกในหลาย ๆ ส่วนของโปรแกรม การเขียนเพียงครั้งเดียวแล้วเรียกใช้หลายครั้งนั้น เป็นการประหยัดเวลาในการเขียนทั้งยังเป็นการช่วยให้โปรแกรมดูง่ายขึ้นและสามารถแก้ไขได้สะดวก เรามาลองดูกันนะครับว่า Function ช่วยในการคำนวณค่าเฉลี่ยของเลขหลาย ๆ ชุด
Comments
Post a Comment