Translate

วันเสาร์ที่ 5 มกราคม พ.ศ. 2556

เริ่มต้นเขียนโปรแกรมเชิงวัตถุ ( OOP )

การเขียนโปรแกรมเชิงวัตถุคืออะไร


  • โปรแกรมที่จะรองรับงานของเราได้นั้นมักจะซับซ้อนเกินกว่าการเขียนโปรแกรมแบบ Structure Programming จะทำได้ผลดีพอแนวคิดของการเขียนโปรแกรมเชิงวัตถุจึงถูกคิดขึ้นมารองรับงานที่ซับซ้อน
  • เทียบการเขียนโปรแกรมแบบ OOP กับรถยนต์ อย่างแรกโปรแกรมแบบ OOP แยกเป็นชิ้นส่วนที่มีมาตรฐานเหมือนรถยนต์ ซึ่งเราเรียกชิ้นส่วนนั้นว่า วัตถุ หรือ Object
  • พอมองเป็น Object ก็ง่าย เราจะถอดเข้าถอดเปลี่ยนด้วยชิ้นส่วนใดก็ได้ ขอให้มันมีมาตรฐานเดียวกัน (เหมือนที่เรามองว่า เราถอดเปลี่ยนชิ้นส่วนรถยนต์ได้สะดวกนั่นเอง) ฉะนั้นมันก็ง่ายที่เราจะยอมให้ใครหลายๆ คนมาช่วยสร้างรถยนต์ หรือปรับแต่งรถยนต์
  • พอทุกคนที่เข้ามาช่วยกันสร้าง ช่วยกันใช้ Object ก็ทำให้ Object ต่างๆ ที่ประกอบกันนั้นทำงานได้สอดคล้องกันง่าย ซอฟต์แวร์ที่สร้างด้วย OOP จึงทำได้รวดเร็วขึ้น เพราะมีมาตรฐานที่ทุกคนทั่วโลกเข้าใจในแบบเดียวกัน



องค์ประกอบพื้นฐานของ OOP
1. Object : ออบเจ็กต์
  • ออบเจ็กต์เป็นสิ่งแรกที่ต้องทำรู้จักเมื่อจะเขียนโปรแกรมแบบ OOP เพราะสิ่งต่างๆ ใน OOP เราจะมองเป็นออบเจ็กต์ เช่น ออบเจ็กต์รถยนต์ Honda, ออบเจ็กต์รถยนต์ Toyota เป็นต้น
  • ความเป็นออบเจ็กต์จะแสดงให้เห็นชัด (หรือแยกแยะ) ด้วยสิ่งที่เรียกว่าคุณสมบัติเฉพาะ (Attribute) และความสามารถในการทำงาน (Method) ของออบเจ็กต์นั้นๆ 
2. Class : คลาส
  • ก่อนที่จะสร้างออบเจ็กต์ขึ้นมาได้เราต้องสร้างคลาสขึ้นมาก่อน คลาสก็เปรียบเสมือนแม่แบบ หรือพิมพ์เขียว ในการสร้างออบเจ็กต์ต่างๆ ขึ้นมาก
  • ออบเจ็กต์ที่สร้างมาจากคลาสเดียวกันอาจมีรายการของคุณสมบัติที่เหมือนกัน, มีความสามารถที่เหมือนกัน แต่จะแตกต่างกันด้วย ค่าของคุณสมบัติต่างๆ 
3. Method : เมธอด 
  • เมธอด (Method) คือ ความสามารถในการทำงานของออบเจ็กต์แต่ละตัว เช่น ภายในคลาสรถยนต์ มีออบเจ็กต์จะมีเมธอดต่างๆ เช่น การติดเครื่อง, การวิ่ง, การหยุดรถ เป็นต้น


การสร้างคลาส 
  • รูปแบบการสร้างคลาส
การเข้าถึงคลาส Class ชื่อคลาส 
{ การประกาศแอตทริบิวต์
การประกาศเมธอด 
{
ชุดคำสั่งของเมธอด
}
}


ตัวอย่าง


การสร้างแอตทริบิวต์




  • รูปแบบการสร้างแอตทริบิวต์


การเข้าถึงแอตทริบิว ชนิดข้อมูล ชื่อแอตทริบิวต์;



  • รูปแบบการสร้างเมธอด


การเข้าถึงเมธอด ชนิดของข้อมูลที่จะส่งกลับออกไป ชื่อเมธอด (ลักษณะของตัวแปรส่ง ชื่อตัวแปรส่ง)
{
รายละเอียดการทำงานในเมธอด
}

การสร้าง และใช้งานออบเจ็กต์
  • รูปแบบการสร้างออบเจ็กต์
  • รูปแบบที่ 1
ชื่อคลาส ชื่อตัวแปรออบเจ็กต์ ;
ชื่อตัวแปรออบเจ็กต์ = new ชื่อคลาส();

  • รูปแบบที่ 2
ชื่อคลาส ชื่อตัวแปรออบเจ็กต์ = new ชื่อคลาส();

การเข้าถึงแอตทริบิวต์ และการใช้งานเมธอด


ตัวอย่าง



คุณสมบัติพื้นฐานของ OOP
1. Inheritance : สืบทอดคลาส
  • Inheritance เป็นการแสดงความสัมพันธ์แบบสืบทอดคุณลักษณะ และพฤติกรรม ถ้าจะยกตัวอย่างง่ายๆ ก็เช่นพ่อแม่มีผิวสีดำ ลูกที่เกิดมาก็จะมีผิวดำ เช่นกัน
2. Encapsulation : ซ่อนรายละเอียดไว้ภายใน
  • ตัวอย่างการซื้อน้ำอัดลมจากเครื่องขายน้ำอัตโนมัติที่ผ่านมา ถ้าเราเป็นผู้สร้างออบเจ็กต์เครื่องขายน้ำขึ้นมาเราจะต้องสร้างฟิลด์และเมธอดขึ้นมาอีกจำนวนหนึ่งเพื่อให้เครื่องขายน้ำทำงานได้ ซึ่งฟิลด์และเมธอดเหล่านี้คนซื้อน้ำอัดลมจะไม่รู้เลยว่ามีอยู่ เช่น ฟิลด์เก็บจำนวนน้ำอัดลมแต่ละประเภทที่เหลืออยู่ เป็นต้น
3. Polymorphism : รูปแบบการใช้ที่หลากหลาย
  • เป็นคุณสมบัติหนึ่งใน OOP ที่อธิบายได้ง่ายๆ ว่า ทำให้การใช้งานเมธอดเดียวกันมีหลายรูปแบบคือ แต่ละครั้งที่เรียกใช้เมธอดนั้นอาจให้ผลลัพธ์ที่ต่างกันได้ 
  • ยกตัวอย่างเช่น ถ้าเรามีคลาส Shape ซึ่งเป็นคลาสต้นแบบของรูปทรงต่างๆ ไม่ว่าจะเป็นสามเหลี่ยม หรือสี่เหลี่ยม โดยคลาส Shape มีเมธอด Area ซึ่งใช้หาพื้นที่ของรูปทรงนั้น แล้วเราสร้างคลาสขึ้นมาอีก 2 คลาสคือ Triangle และ Rectangle ซึ่ง inherit คลาส Shape มาอีกทีหนึ่ง
ข้อดีของ OOP
  • ง่ายในการแก้ไข 
  • ง่ายต่อการพัฒนาความสามารถเพิ่ม 
  • สะดวกต่อการนำมาใช้ใหม่ 
  • ไม่ต้องระวังชื่อซ้ำ 




ไม่มีความคิดเห็น:

แสดงความคิดเห็น