1 / 77

Selected Topics in IT (Java)

Selected Topics in IT (Java). Week 4 &5: โปรแกรมเชิงวัตถุ และเมธอด. การเขียนโปรแกรมเชิงวัตถุคืออะไร. โปรแกรมที่จะรองรับงานของเราได้นั้นมักจะซับซ้อนเกินกว่าการเขียนโปรแกรมแบบ Structure Programming จะทำได้ผลดีพอแนวคิดของการเขียนโปรแกรมเชิงวัตถุจึงถูกคิดขึ้นมารองรับงานที่ซับซ้อน

kathy
Download Presentation

Selected Topics in IT (Java)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Selected Topics in IT (Java) Week 4 &5: โปรแกรมเชิงวัตถุ และเมธอด

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

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

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

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

  6. องค์ประกอบพื้นฐานของ OOP • Object • Class • Method

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

  8. องค์ประกอบพื้นฐานของ OOP(ต่อ) 2. Class : คลาส • ก่อนที่จะสร้างออบเจ็กต์ขึ้นมาได้เราต้องสร้างคลาสขึ้นมาก่อน คลาสก็เปรียบเสมือนแม่แบบ หรือพิมพ์เขียว ในการสร้างออบเจ็กต์ต่างๆ ขึ้นมาก • ออบเจ็กต์ที่สร้างมาจากคลาสเดียวกันอาจมีรายการของคุณสมบัติที่เหมือนกัน, มีความสามารถที่เหมือนกัน แต่จะแตกต่างกันด้วย ค่าของคุณสมบัติต่างๆ

  9. องค์ประกอบพื้นฐานของ OOP(ต่อ) 3. Method : เมธอด • เมธอด (Method) คือ ความสามารถในการทำงานของออบเจ็กต์แต่ละตัว เช่น ภายในคลาสรถยนต์ มีออบเจ็กต์จะมีเมธอดต่างๆ เช่น การติดเครื่อง, การวิ่ง, การหยุดรถ เป็นต้น

  10. การสร้างคลาส • รูปแบบการสร้างคลาส

  11. การสร้างคลาส (ต่อ) • ตัวอย่าง Attribute Method

  12. การสร้างแอตทริบิวต์ รูปแบบการสร้างแอตทริบิวต์ รูปแบบการสร้างเมธอด

  13. การสร้าง และใช้งานออบเจ็กต์ • รูปแบบการสร้างออบเจ็กต์ • รูปแบบที่ 1 • รูปแบบที่ 2

  14. ตัวอย่างโปรแกรม

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

  16. การเข้าถึงแอตทริบิวต์ และการใช้งานเมธอด (ต่อ) • ตัวอย่าง

  17. คุณสมบัติพื้นฐานของ OOP • Inheritance • Encapsulate • Polymorphism

  18. คุณสมบัติพื้นฐานของ OOP (ต่อ) 1. Inheritance : สืบทอดคลาส • Inheritance เป็นการแสดงความสัมพันธ์แบบสืบทอดคุณลักษณะ และพฤติกรรม ถ้าจะยกตัวอย่างง่ายๆ ก็เช่นพ่อแม่มีผิวสีดำ ลูกที่เกิดมาก็จะมีผิวดำ เช่นกัน

  19. คุณสมบัติพื้นฐานของ OOP (ต่อ) • ตัวอย่าง Inheritance

  20. คุณสมบัติพื้นฐานของ OOP (ต่อ) 2. Encapsulation : ซ่อนรายละเอียดไว้ภายใน • ผู้ใช้งานออบเจ็กต์จะไม่รู้เลยว่าออบเจ็กทำงานตามที่เขาต้องการได้อย่างไร หรือจริงๆแล้วในออบเจ็กประกอบด้วยฟิลด์และเมธอดอะไรบ้าง

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

  22. คุณสมบัติพื้นฐานของ OOP (ต่อ) 3. Polymorphism : รูปแบบการใช้ที่หลากหลาย • เป็นคุณสมบัติหนึ่งใน OOP ที่อธิบายได้ง่ายๆ ว่า ทำให้การใช้งานเมธอดเดียวกันมีหลายรูปแบบคือ แต่ละครั้งที่เรียกใช้เมธอดนั้นอาจให้ผลลัพธ์ที่ต่างกันได้

  23. คุณสมบัติพื้นฐานของ OOP (ต่อ) • ตัวอย่าง Polymorphism • ยกตัวอย่างเช่น ถ้าเรามีคลาส Shape ซึ่งเป็นคลาสต้นแบบของรูปทรงต่างๆ ไม่ว่าจะเป็นสามเหลี่ยม หรือสี่เหลี่ยม โดยคลาส Shape มีเมธอด Area ซึ่งใช้หาพื้นที่ของรูปทรงนั้น แล้วเราสร้างคลาสขึ้นมาอีก 2 คลาสคือ Triangle และ Rectangle ซึ่ง inherit คลาส Shape มาอีกทีหนึ่ง

  24. ข้อดีของ OOP • ง่ายในการแก้ไข • ปรับปรุงเฉพาะเมธอดที่จำเป็น • ง่ายต่อการพัฒนาความสามารถเพิ่ม • สามารถพัฒนาคลาสใหม่โดยต่อยอดจากคลาสแม่โดยใช้ Inheritance • สะดวกต่อการนำมาใช้ใหม่ • สร้างออบเจ็คใหม่ • ไม่ต้องระวังชื่อซ้ำ • ชื่อใช้เฉพาะคลาสใครคลาสมัน

  25. สาระสำคัญ สำหรับส่วนนี้เราเริ่มต้นการเขียนโปรแกรมเชิงวัตถุ หรือ OOP ซึ่งเป็นความโดดเด่นของภาษา Java ที่ทำให้เราสามารถสร้างแอพพลิเคชันได้อย่างมีมาตรฐาน เพราะมันมีแนวคิด และระเบียบวิธีที่ดี ทำให้สามารถต่อยอดสร้างแอพพลิเคชันที่ซับซ้อนในชีวิตจริงได้ สามารถปรับปรุงแก้ไข และใช้งานร่วมกันระหว่างผู้เขียนโปรแกรมหลายๆ คนได้อย่างสะดวก แม้ว่าจะมีคำศัพท์และแนวคิดบางเรื่องที่เป็นนามธรรม แต่หากเปรียบกับสิ่งแวดล้อมรอบตัวเราแล้ว จะเห็นว่าไม่ยากเลย

  26. เมธอด

  27. เมธอดคืออะไร เมธอด (Method) คือ ความสามารถในการทำงานของออบเจ็กต์ มันถูกสร้างขึ้นมาพร้อมกับการสร้างออบเจ็กต์ ซึ่งออบเจ็กต์ที่สร้างจากคลาสเดียวกันก็จะมีรายการของเมธอดต่างๆ เหมือนกัน

  28. เมธอดคืออะไร (ต่อ) • การที่ออบเจ็กต์มีเมธอดจะช่วยให้ผู้ใช้งาน ไม่ต้องกังวล หรือไม่ต้องสนใจว่า จะมีวิธีการทำงานภายในเมธอดเป็นอย่างไร สนใจเพียงแค่ใช้งานอย่างไร ช่วยให้เมธอดที่มีไม่ถูกยุ่งย่ามก้าวก่ายโดยไม่จำเป็น

  29. อาร์กิวเมนต์และพารามิเตอร์อาร์กิวเมนต์และพารามิเตอร์ • อาร์กิวเมนต์ คือ ค่าคงที่หรือตัวแปรต่างๆ ที่เราจะส่งไปให้เมธอด เพื่อการนำข้อมูลเข้าไปประมวลผลในเมธอดนั้นๆ

  30. อาร์กิวเมนต์และพารามิเตอร์ (ต่อ) • พารามิเตอร์ คือ ตัวแปรที่กำหนดขึ้นมาเพื่อรองรับค่าของ Arguments ที่จะส่งมา

  31. ตัวอย่าง

  32. เมธอดหลักและเมธอดย่อยเมธอดหลักและเมธอดย่อย เมธอดหลัก • สร้างขึ้นเพื่อเรียกเมธอดอื่นๆ ขึ้นมาทำงาน • มีการเข้าถึงเมธอดหลักแบบสาธารณะ(public) สามารถนำเมธอดหลักไปใช้ได้กับทุกๆ คลาส • สามารถเรียกใช้งานได้ทันทีไม่ต้องผ่านออบเจ็กต์ • ไม่มีการคืนค่ากลับไปที่เมธอดอื่น

  33. เมธอดหลักและเมธอดย่อย (ต่อ) รูปแบบการสร้างเมธอดหลัก สำหรับเมธอดย่อยทั่วๆ ไปที่ไม่ใช่เมธอดหลัก อาจเป็น static method ,instant method, constructor method, Overloading method หรือ Overriding method ก็ได้ แต่ละชนิดมีโครงสร้างไม่เหมือนกับเมธอดหลัก ส่วนประกอบบางอย่างอาจมีหรือไม่มีก็ได้ตามแต่ลักษณะการทำงาน

  34. เมธอดหลักและเมธอดย่อย(ต่อ)เมธอดหลักและเมธอดย่อย(ต่อ) รูปแบบการสร้างเมธอดย่อย

  35. Method รูปแบบต่างๆ เมธอดมีอยู่ด้วยกัน 5 ประเภทแบ่งตามลักษณะการทำงานดังนี้ • ประเภทที่ 1 : static method static method เป็นเมธอดที่เรียกใช้ตัวแปรได้ทันที ไม่ต้องมีการสร้างออบเจ็กต์ขึ้นมาเพื่อเรียกใช้ตัวแปร เช่น การคำนวณทางคณิตศาสตร์ ซึ่ง static method จะรับค่าที่ผู้ใช้ต้องการคำนวณ และทำการคำนวณ แล้วส่งผลลัพธ์กลับไปยังผู้ใช้

  36. ตัวอย่าง

  37. Method รูปแบบต่างๆ (ต่อ) ประเภทที่ 2 :instance method • เป็นเมธอดทั่วๆ ไปที่สร้างขึ้นมาใช้กันบ่อยๆ เมธอดแบบนี้จะไม่มีคำว่า static อยู่ข้างหน้าตัวแปร เมื่อจะเรียกใช้ method ประเภทนี้ จะต้องมีการสร้างออบเจ็กต์ขึ้นมา

  38. ตัวอย่าง

  39. Method รูปแบบต่างๆ (ต่อ) ประเภทที่ 3 : constructor method • constructor คือเมธอดที่มีชื่อเดียวกับคลาส ซึ่งเมื่อออบเจ็กต์ใดๆ ถูกสร้างขึ้นมาจากคลาสแล้ว เมธอดนี้จะเริ่มทำงานทันทีเป็นเมธอดแรก (ปกติมักจะใช้กำหนดค่าเริ่มต้นของการทำงาน)

  40. ตัวอย่าง

  41. ตัวอย่าง(ต่อ)

  42. Method รูปแบบต่างๆ (ต่อ) ประเภทที่ 4 : Overloading method • Overloading method คือ เมธอดหลายเมธอดที่มีชื่อเดียวกัน แต่มีชนิดของตัวแปรต่างชนิดกัน หรือจำนวนอาร์กิวเมนต์ไม่เท่ากัน เพราะงานบางงานอาจใช้ชื่องานเดียวกัน แต่ต้องมีการแยกแยะว่า มีการส่งค่าตัวแปรชนิดใดมา เช่น ถ้าส่งค่าตัวแปรมาเป็น Integer ก็ให้ทำงานในเมธอดหนึ่ง ถ้าส่งมาเป็น String ก็ให้ทำงานในอีกเมธอดหนึ่ง

  43. ตัวอย่าง

  44. ตัวอย่าง (ต่อ)

  45. Method รูปแบบต่างๆ (ต่อ) ประเภทที่ 5 : Overriding method • Overriding method คือ เมธอดหลายเมธอดที่มีชื่อเดียวกัน ชนิดของตัวแปรเหมือนกัน แต่เขียนโปรแกรมในลักษณะที่เมธอดหนึ่งอยู่ในคลาสแม่ อีกเมธอดหนึ่งอยู่ในคลาสลูก ซึ่งเมื่อมีเมธอดชื่อซ้ำกัน รับค่าของตัวแปรเหมือนกันปรากฏในคลาสลูกโปรแกรมจะทำงานตามคำสั่งในคลาสลูกโดยอัตโนมัติ ซึ่งส่วนนี้เราจะอธิบายอย่างละเอียดในส่วน Inheritance

  46. ตัวอย่าง

  47. ตัวอย่าง (ต่อ)

  48. สาระสำคัญ ในส่วนนี้เราได้เรียนรู้เกี่ยวกับการใช้งานเมธอดอย่างละเอียด ซึ่งมีการใช้งานหลากหลายทั้งที่เป็นเมธอดหลัก (เมธอด main) ที่เราคุ้นเคย หรือเมธอดชนิด instance method, เมธอดชนิด static method รวมทั้งเมธอดชนิดพิเศษที่ทำงานตอนที่เริ่มต้นสร้างออบเจ็กต์นั่นคือ constructor method รวมทั้งการที่เราสามารถใช้เมธอดที่มีชื่อเดียวกัน (แต่อาร์กิวเมนต์ต่างกัน) ในรูปแบบของ Overloading method และการดัดแปลงเมธอดที่ได้จากการสืบทอดคลาสคือ Overriding Method

  49. เมธอดสำเร็จรูป

  50. เมธอดสำเร็จรูป • เมธอดต่างๆ ที่ใช้จัดการเกี่ยวกับสตริง • เมดธอดสำเร็จรูปเกี่ยวกับตัวเลข และการคำนวณทางคณิตศาสตร์ • เมธอดเกี่ยวกับวัน เวลา • ฯลฯ

More Related