1 / 108

การเขียนโปรแกรมเชิงวัตถุ Object Oriented Programming

การเขียนโปรแกรมเชิงวัตถุ Object Oriented Programming. Nerissa Onkhum. แนวการสอน. ชื่อวิชา (ภาษาไทย) การเขียนโปรแกรมเชิงวัตถุ ชื่อวิชา (ภาษาอังกฤษ) Object Oriented Programming รหัสวิชา 4121306A จำนวนหน่วยกิต 3(2-2) อาจารย์ผู้สอน อาจารย์เณริสสา อ่อนขำ

Download Presentation

การเขียนโปรแกรมเชิงวัตถุ Object Oriented Programming

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. การเขียนโปรแกรมเชิงวัตถุObject Oriented Programming Nerissa Onkhum

  2. แนวการสอน ชื่อวิชา (ภาษาไทย)การเขียนโปรแกรมเชิงวัตถุ ชื่อวิชา (ภาษาอังกฤษ) Object Oriented Programming รหัสวิชา 4121306A จำนวนหน่วยกิต 3(2-2) อาจารย์ผู้สอน อาจารย์เณริสสา อ่อนขำ E-mail NerissaOnkhum@live.uru.ac.th ห้องทำงาน 822

  3. คำอธิบายรายวิชา หลักการการออกแบบและพัฒนาซอฟต์แวร์เชิงวัตถุ โครงสร้างโปรแกรมในภาษาเชิงวัตถุ ความหมายและ กลุ่มของวัตถุ คุณลักษณะและพฤติกรรมของวัตถุ คลาสและหลักการสำคัญของคลาส การห่อหุ้ม  การสืบทอด การพ้องรูป การนำเอาส่วนประกอบของซอฟต์แวร์กลับมาใช้ กราฟิก การสร้างและจัดการโครงสร้างข้อมูลพลวัต กรณีศึกษา การเขียนโปรแกรมเชิงวัตถุ

  4. จุดประสงค์การเรียนรู้จุดประสงค์การเรียนรู้ • เพื่อให้นักศึกษามีความรู้ ความเข้าใจเกี่ยวกับหลักการและแนวคิดเชิงวัตถุ • เพื่อให้นักศึกษามีความรู้ ความเข้าใจเกี่ยวกับการออกแบบและการเขียนโปรแกรมเชิงวัตถุ

  5. เนื้อหาวิชา • ความรู้เบื้องต้นของภาษาจาวา • หลักการเชิงออปเจ็ค • พื้นฐานโปรแกรมภาษาจาวา • โครงสร้างควบคุม • การเขียนโปรแกรมภาษาจาวาเชิงออปเจ็ค • อะเรย์และคอลเล็กชัน • การจัดการกับข้อมูลผิดพลาด • อินพุตและเอาท์พุต • โปรแกรมจาวาแบบกราฟฟิก

  6. หนังสือที่ใช้ในรายวิชาหนังสือที่ใช้ในรายวิชา ตำราหลัก • ธีรวัฒน์ ประกอบผล. คู่มือการเขียนโปรแกรมภาษา JAVA. พิมพ์ครั้งที่ 1 2552 : กรุงเทพฯ ; ซัคเซส มีเดีย. • อรพิน. คู่มือการเขียนโปรแกรมด้วยภาษา JAVA. พิมพ์ครั้งที่ 9 2553: กรุงเทพฯ ; โปรวิชั่น.

  7. หนังสือที่ใช้ในรายวิชาหนังสือที่ใช้ในรายวิชา หนังสืออ่านประกอบ • ยุทธนา ลีลาศวัฒนกุล. เริ่มต้นการเขียนโปรแกรมด้วยภาษา Java. พิมพ์ครั้งที่ 1 2548 : กรุงเทพ ฯ ; ไทยเจริญการพิมพ์. • พนิดา พานิชกุล. การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นด้วยภาษา JAVA. พิมพ์ครั้งที่ 1 2548 : กรุงเทพฯ ; ไทยเจริญการพิมพ์. • วรเศรษฐ สุวรรณิก และ ทศพล ธนะทิพานนท์. เขียนโปรแกรม Java เบื้องต้น. พิมพ์ครั้งที่ 4 2551 : กรุงเทพฯ ; ซีเอ็ดยูเคชั่น.

  8. การวัดผล • คะแนนระหว่างภาค 70 คะแนน • เข้าเรียน 5คะแนน • ทดสอบย่อย5คะแนน • แบบทดสอบ 10 คะแนน • แบบฝึกปฏิบัติ 10 คะแนน • สอบกลางภาค 30 คะแนน • สอบปฏิบัติ 10 คะแนน • คะแนนสอบปลายภาค 30 คะแนน

  9. ข้อตกลงในชั้นเรียน • เวลาเข้าเรียนไม่ต่ำกว่าร้อยละ 80 • ขาดได้ไม่เกิน 3 ครั้ง • มาสายกว่าเวลาเรียนครึ่งชั่วโมง 2 ครั้ง ถือว่าขาด 1 ครั้ง • ส่งงานที่ได้รับมอบหมายทั้งหมดครบและตรงตามระยะเวลา ที่กำหนด • การแต่งกาย ให้เป็นไปตามระเบียบมหาวิทยาลัยกำหนด

  10. ความรู้เบื้องต้นของภาษาจาวา(Introduction to Java Programming) Nerissa Onkhum

  11. Outline • การเขียนโปรแกรมเชิงวัตถุ • ประวัติของภาษาจาวา • ข้อดีของภาษาจาวา • จาวาแพลตฟอร์ม • การคอมไพล์และรันโปรแกรมภาษาจาวา • โปรแกรม HelloWorld ในแบบตัวอักษรและแบบกราฟิก • การติดตั้งเครื่องมือที่ใช้ในการพัฒนาโปรแกรมในภาษา Java

  12. การเขียนโปรแกรมแบบโครงสร้าง(Structure programming) การเขียนโปรแกรมเชิงกระบวนการ (Procedural Programming) เป็นการเขียนโปรแกรมแบบโครงสร้าง ซึ่งช่วยจัดระเบียบของคำสั่งในโปรแกรม สามารถตรวจสอบลำดับการทำงานได้ง่าย แต่เนื่องจากโปรแกรมประกอบด้วยคำสั่ง และข้อมูล เช่น ภาษา C แยกส่วนที่เป็นข้อมูลออกจากคำสั่ง ด้วยเหตุนี้ฟังก์ชันที่จัดการกับข้อมูลจึงอาจถูกวางไว้อย่างกระจัดกระจาย สร้างความลำบากในการติดตามสืบหาว่าข้อมูลถูกเปลี่ยนแปลง โดยฟังก์ชันใด

  13. การเขียนโปรแกรมเชิงกระบวนการการเขียนโปรแกรมเชิงกระบวนการ • การเขียนโปรแกรมแบบโครงสร้าง (Procedural) จะแบ่งเป็น 2 ส่วนคือ ส่วนโปรแกรมหลัก(Main Program) และ โปรแกรมย่อย (Procedure หรือ Function)ลักษณะของ Data ที่มีการประกาศใช้ทั่วทั้งโปรแกรม เรียกว่าประกาศใช้แบบ “Global”

  14. การเขียนโปรแกรมเชิงกระบวนการการเขียนโปรแกรมเชิงกระบวนการ โปรแกรมย่อย 1 โปรแกรมหลัก Global Data โปรแกรมย่อย 3 โปรแกรมย่อย 2 แสดงการเขียนโปรแกรมแบบ Procedure โปรแกรมย่อย 4

  15. การเขียนโปรแกรมเชิงกระบวนการการเขียนโปรแกรมเชิงกระบวนการ • การเขียนโปรแกรมแบบโครงสร้างโปรแกรมย่อยจะเรียกใช้ข้อมูลจากโปรแกรมหลักตัวเดียวกัน อาจทำให้เกิดปัญหาการเปลี่ยนแปลงค่าของข้อมูลตัวเดียวกันได้ • โปรแกรมประกอบด้วยคำสั่งและข้อมูล การจัดระเบียบคำสั่ง เพียงอย่างเดียวนั้นจึงไม่สมบูรณ์ • แยกส่วนที่เป็นข้อมูลออกจากคำสั่ง ด้วยเหตุนี้ฟังก์ชันที่จัดการกับข้อมูลจึงอาจจะถูกวางไว้อย่างกระจัดกระจาย สร้างความลำบาก ในการติดตามสืบหาว่าข้อมูลนี้ถูกเปลี่ยนแปลงโดยฟังก์ชันใด

  16. การเขียนโปรแกรมเชิงกระบวนการการเขียนโปรแกรมเชิงกระบวนการ • การเขียนโปรแกรมเชิงกระบวนการ (Procedural Programming) หรือการโปรแกรมแบบมีโครงสร้าง (Structure Programming) มีหลักการ 3 อย่างนี้คือ • การทำงานแบบตามลำดับ (Sequence) • การเลือกกระทำตามเงื่อนไข (Decision) • การทำซ้ำ (Loop)

  17. การเขียนโปรแกรมเชิงกระบวนการการเขียนโปรแกรมเชิงกระบวนการ START 1. การทำงานแบบตามลำดับ (Sequence) : รูปแบบการเขียนโปรแกรมที่ง่ายที่สุดคือ เขียนให้ทำงานจากบนลงล่าง เขียนคำสั่ง เป็นบรรทัด และทำทีละบรรทัดจากบรรทัดบนสุดลงไปจนถึงบรรทัดล่างสุด สมมติให้มี การทำงาน 3 กระบวนการคือ อ่านข้อมูล คำนวณ และพิมพ์ จะเขียนเป็นผังงาน (Flowchart) ในแบบตามลำดับได้ตามภาพ Process1 Process2 Process3 STOP แสดงการเขียนโปรแกรมเชิงกระบวนการแบบลำดับ

  18. การเขียนโปรแกรมเชิงกระบวนการการเขียนโปรแกรมเชิงกระบวนการ START การทำงานแบบตามลำดับ (Sequence) • ทำงานตามลำดับ • ทำงานจากบนลงล่าง (จุดเริ่มต้นถึงสิ้นสุด) • มีจุดเริ่มต้นจุดเดียว – จุดสิ้นสุดจุดเดียว Process1 Process2 Process3 STOP

  19. การเขียนโปรแกรมเชิงกระบวนการการเขียนโปรแกรมเชิงกระบวนการ 2. การเลือกกระทำตามเงื่อนไข (Decision) : การตัดสินใจ หรือเลือกเงื่อนไขคือ เขียนโปรแกรมเพื่อนำค่าไปเลือกกระทำ โดยปกติจะมีเหตุการณ์ให้ทำ 2 กระบวนการ คือ เงื่อนไขเป็นจริงจะกระทำกระบวนการหนึ่ง และเป็นเท็จจะกระทำอีกกระบวนการหนึ่ง แต่ถ้าซับซ้อนมากขึ้น จะต้องใช้เงื่อนไขหลายชั้น เช่นการตัดเกรดนักศึกษา เป็นต้น ตัวอย่างผังงานนี้ จะแสดงผลการเลือกอย่างง่าย เพื่อกระทำกระบวนการเพียงกระบวนการเดียว Yes No Decision Process Process แสดงการเขียนโปรแกรมเชิงกระบวนการแบบเงื่อนไข

  20. ตัวอย่าง โปรแกรมประมวลผลการเรียน • เงื่อนไข • คะแนนสอบตั้งแต่ 80 คะแนนขึ้นไป ได้เกรด A • คะแนนสอบ 70-79 คะแนนขึ้นไป ได้เกรด B • คะแนนสอบ 60-69 คะแนนขึ้นไป ได้เกรด C • คะแนนสอบ 50-59 คะแนนขึ้นไป ได้เกรด D • คะแนนสอบต่ำกว่า 50 คะแนน ได้เกรด F

  21. START Read Score N Y Score>=80 Y N Grade = ‘A’ Score>=70 N Y Score>=60 Grade = ‘B’ Grade = ‘C’ Y N Score>=50 Grade = ‘D’ Grade = ‘F’ ตัวอย่าง STOP Write Grade

  22. หรือ

  23. ตัวอย่าง • อัลกอริธึม • เริ่มต้นทำงาน • รับค่า คะแนนสอบ (Score) • เปรียบเทียบคะแนนสอบ>=80 ถ้าเป็นจริง ให้ทำนิพจน์ Grade=‘A’ ถ้าเป็นเท็จ ให้เปรียบเทียบคะแนนสอบ >=70 ถ้าเป็นจริง ให้ทำนิพจน์ Grade=‘B’ ถ้าเป็นเท็จ ให้เปรียบเทียบคะแนนสอบ >=60 ถ้าเป็นจริง ให้ทำนิพจน์ Grade=‘C’ ถ้าเป็นเท็จ ให้เปรียบเทียบคะแนนสอบ >=50 ถ้าเป็นจริง ให้ทำนิพจน์ Grade=‘D’ ถ้าเป็นเท็จ ให้ให้ทำนิพจน์ Grade=‘F’ • แสดงผล เกรด (Grade) • จบการทำงาน รหัสเทียม (Pseudo Code) Begin READ Score IF Score >= 80 THEN Grade = ‘A’ ELSE IF Score >=70 THEN Grade = ‘B’ ELSE IF Score >=60 THEN Grade = ‘C’ ELSE IF Score >=50 THEN Grade = ‘D’ ELSE Grade = ‘F’ WRITE Grade End

  24. การเขียนโปรแกรมเชิงกระบวนการการเขียนโปรแกรมเชิงกระบวนการ 3. การทำซ้ำ (Repetition or Loop) : การทำกระบวนการหนึ่งหลายครั้ง โดยมีเงื่อนไขในการควบคุม หมายถึงการทำซ้ำเป็นหลักการที่ทำความเข้าใจได้ยากกว่า 2 รูปแบบแรก เพราะการเขียนโปรแกรมแต่ละภาษา จะไม่แสดงภาพอย่างชัดเจนเหมือนการเขียนผังงาน (Flowchart) ผู้เขียนโปรแกรมต้องจินตนาการ ถึงรูปแบบการทำงาน และใช้คำสั่งควบคุมด้วยตนเอง ตัวอย่างผังงานที่นำมาแสดงนี้เป็นการแสดงคำสั่ง ทำซ้ำ (do while) ซึ่งหมายถึงการทำซ้ำในขณะที่เป็นจริง และเลิกการทำซ้ำ เมื่อเงื่อนไขเป็นเท็จ Process Yes Decision No แสดงการเขียนโปรแกรมเชิงกระบวนการแบบลำดับ

  25. การเขียนโปรแกรมเชิงกระบวนการการเขียนโปรแกรมเชิงกระบวนการ ยกตัวอย่าง เช่น โปรแกรมตู้ขายเครื่องดื่มอัตโนมัติ วิธีการคิดแบบการเขียนโปรแกรมเชิงกระบวนการ เมื่อมีการหยอดเหรียญเข้าตู้: 1. ตรวจสอบจำนวนเหรียญและชนิดของเหรียญ 2. แสดงผลชนิดของน้ำที่สามารถเลือกซื้อได้ 3. ตรวจสอบจำนวนน้ำกระป๋องที่มีอยู่ในตู้ 4. รับผลการเลือกชนิดน้ำ 5. ส่งน้ำที่เลือกออกมาจากช่อง 6. จัดเก็บเงินเข้าระบบ 7. หากมีเงินทอน ให้ทอนเงินที่เหลือ ที่ช่องรับเงินทอน

  26. ข้อเสียการเขียนโปรแกรมเชิงกระบวนการข้อเสียการเขียนโปรแกรมเชิงกระบวนการ แนวคิดนี้มีข้อเสียอย่างไร? • ขนาดของโปรแกรมใหญ่ขึ้น จะทำให้มีความซับซ้อนในแง่ของ การเขียนโปรแกรม • ปัญหาในเรื่องของการนำกับมาใช้ใหม่ (Reusable) • การแก้ไข (Modify) • การขยายเพื่อเพิ่มประสิทธิภาพให้กับโปรแกรม

  27. การเขียนโปรแกรมเชิงวัตถุการเขียนโปรแกรมเชิงวัตถุ การเขียนโปรแกรมเชิงวัตถุ(Object-oriented programming, OOP) คือหนึ่งในรูปแบบการเขียนโปรแกรมคอมพิวเตอร์ ที่ให้ความสำคัญกับ วัตถุ ซึ่งสามารถนำมาประกอบกันและนำมาทำงานรวมกันได้ โดยการแลกเปลี่ยนข่าวสาร เพื่อนำมาประมวลผลและส่งข่าวสารที่ได้ไปให้วัตถุอื่นๆ ที่เกี่ยวข้องเพื่อให้ทำงานต่อไป

  28. การเขียนโปรแกรมเชิงวัตถุการเขียนโปรแกรมเชิงวัตถุ • การเขียนโปรแกรมเชิงวัตถุ Data จะถูกประกาศใช้เฉพาะภายใน Object เท่านั้น • การที่ OOP จัด Data ไว้ในแต่ละ Object นั้น เป็นการปกป้องข้อมูลภายใน Object ลดปัญหาการเปลี่ยนแปลงข้อมูลภายใน Object โดยไม่ได้รับอนุญาต Object 1 Data Object 2 Data

  29. การเขียนโปรแกรมเชิงวัตถุการเขียนโปรแกรมเชิงวัตถุ โปรแกรมตู้ขายเครื่องดื่มอัตโนมัติ วิธีการคิดแบบการเขียนโปรแกรมเชิงวัตถุ ตู้ขายเครื่องดื่มอัตโนมัติ ประกอบด้วยส่วนประกอบต่างๆได้แก่ หน่วยตรวจสอบและจัดการเรื่องเงิน หน่วยจัดการเครื่องดื่ม หน่วยแสดงผลและรอรับคำสั่ง 1. หน่วยตรวจสอบและจัดการเรื่องเงิน มีข้อมูลเกี่ยวกับเงินที่ได้รับ และเงินที่มีอยู่ในระบบสามารถรับและตรวจสอบเงินที่หยอดเข้ามาได้ และทอนเงินได้ 2. หน่วยจัดการเครื่องดื่ม มีข้อมูลชนิดของเครื่องดื่ม จำนวนเครื่องดื่ม สามารถจัดเตรียมชนิดเครื่องดื่มที่พอกับเงินที่หยอด และสามารถจ่ายเครื่องดื่มออกมาจากตู้ได้ 3. หน่วยแสดงผลและรอรับคำสั่ง มีหน้าที่รอรับคำสั่ง และแสดงผลเงินที่หยอดเข้ามา

  30. ข้อดีของการพัฒนาโปรแกรมเชิงวัตถุข้อดีของการพัฒนาโปรแกรมเชิงวัตถุ • แนวคิดการวิเคราะห์ปัญหาใกล้เคียงกับธรรมชาติของมนุษย์ • ระบบจริง (real life) แบ่งตามออปเจ็ค ไม่ได้ขึ้นอยู่กับฟังก์ชันการทำงาน • ขบวนการพัฒนาโปรแกรมทำได้รวดเร็วขึ้น • ง่ายต่อการพัฒนาและแก้ไข • นำโปรแกรมกลับมาใช้ใหม่ได้ง่าย

  31. เปรียบเทียบแนวคิดระหว่างการเขียนโปรแกรมเชิงกระบวนการ และเชิงวัตถุ แนวคิดการเขียนโปรแกรมแบบดั้งเดิมมักนิยมใช้ การเขียนโปรแกรมเชิงกระบวนการ(Procedural Programming) ซึ่งให้ความสำคัญกับขั้นตอนกระบวนการที่ทำ โดยแบ่งโปรแกรมออกเป็นส่วนๆตามลำดับขั้นตอนการทำงาน แต่แนวคิดการเขียนโปรแกรมเชิงวัตถุนั้นให้ความสำคัญกับข้อมูล (data) และ พฤติกรรม (behavior) ของวัตถุ และความสัมพันธ์กันระหว่างวัตถุกันมากกว่า

  32. หลักการของโปรแกรมเชิงวัตถุหลักการของโปรแกรมเชิงวัตถุ • โปรแกรมเชิงวัตถุจะแบ่งการทำงานของโปรแกรมเป็นวัตถุ • การปรับปรุงหรือแก้ไขโปรแกรมเชิงวัตถุทำได้ง่ายกว่า จึงเหมาะกับการพัฒนาโปรแกรมขนาดใหญ่ที่จะต้องมีการปรับปรุงแก้ไขโปรแกรมอยู่ตลอด

  33. วัตถุ (object) • โปรแกรมพจนานุกรมฉบับราชบัณฑิตยสถาน พ.ศ. ๒๕๒๕ นิยามคำว่า “วัตถุ” ว่าหมายถึงสิ่งของ และนิยามคำว่า “สิ่งของ” ว่าหมายถึงวัตถุต่างๆ • ในโปรแกรมจะจำลองลักษณะและความสามารถของวัตถุต่างๆ ที่อยู่ในโลกจริง • สิ่งไม่มีชีวิต เช่น รูปสี่เหลี่ยม โทรทัศน์ หรือบ้าน • สิ่งมีชีวิต เช่น พนักงาน นก หรือต้นไม้ • สิ่งที่เป็นนามธรรม เช่น แนวความคิด หลักการ หรือวิธีการ

  34. คลาส (Class) • คลาสเป็นเหมือนส่วนของแม่พิมพ์ เพื่อบอกลักษณะว่าวัตถุในคลาสนี้มีลักษณะและพฤติกรรมเป็นอย่างไร ส่วนประกอบของคลาส • แอททริบิวท์(Attribute)หรือข้อมูล (Data) เป็นสิ่งที่ใช้บอกถึงลักษณะต่างๆของวัตถุในคลาส • เมธอด(Method)หรือพฤติกรรม (Behavior) เป็นสิ่งที่ใช้อธิบายการทำงานของวัตถุในคลาส

  35. ตัวอย่างของคลาส • นักศึกษา อาจจะประกอบไปด้วยคุณลักษณะเช่น รหัส ชื่อ และเกรดเฉลี่ย และอาจจะมีเมธอดเช่น ลงทะเบียน สอบ และเดิน • รถยนต์ อาจจะประกอบไปด้วยคุณลักษณะเช่น ยี่ห้อ รุ่น และสี และอาจจะมีเมธอดเช่น เคลื่อนที่ หยุดและเลี้ยว • สุนัข อาจจะประกอบไปด้วยคุณลักษณะเช่น ชื่อ พันธุ์ และสี และอาจจะมีเมธอดเช่น เห่า คลาน และกระดิกหาง

  36. คลาส (Class) • คลาสหนึ่งคลาสสามารถสร้างออปเจ็คได้หลายออปเจ็ค อาทิเช่น คลาส Student อาจสร้างออปเจ็ค s1,s2 หรือ s3 ซึ่งเป็นออปเจ็คของคลาส Student

  37. ตัวอย่างของออปเจ็คและคลาสตัวอย่างของออปเจ็คและคลาส

  38. คุณสมบัติของโปรแกรมเชิงวัตถุคุณสมบัติของโปรแกรมเชิงวัตถุ 1. การห่อหุ้ม (Encapsulation) - ซ่อนวิธีการทำงาน (Information Hiding) 2. การสืบทอด (Inheritance) 3. การพ้องรูป(Polymorphism)

  39. การห่อหุ้ม (Encapsulation) การห่อหุ้ม (Encapsulation) เป็นการซ่อนรายละเอียดการทำงานและข้อมูลไว้ภายใน ไม่ให้ภายนอกสามารถเห็นได้ อาจเป็นเพราะแฟ้มเอกสารถูก Encapsulation (ซ่อนอยู่หลังกำแพง) อยู่ครับ จะมีแต่เฉพาะบุคคลภายในบริษัท C มองเห็นแฟ้มเอกสารนี้ได้ ตัวผมก็มองไม่เห็นเช่นกัน เพราะผมเองก็เป็นบุคคลภายนอกเช่นกัน ดิฉันสมหญิงจากบริษัท A ทำไมดิฉันจึงมองไม่เห็นแฟ้มเอกสารเหมือนอย่างที่คุณสมศรีบริษัท C มองเห็นคะ ดิฉันชื่อสมศรีเป็นบุคคลภายในของบริษัท C ฉันจึงเห็นแฟ้มเอกสารเหล่านี้และมีสิทธิ์เข้ามาจัดการได้ค่ะ แฟ้มเอกสารนี้เป็น private (แฟ้มส่วนบุคคล)

  40. การห่อหุ้ม (Encapsulation) ใช่แล้วครับ โชคดีมาก เพราะจะทำให้เราสามารถเข้าไปดูข้อมูลในแฟ้มเอกสารนี้ได้ และนอกจาก เราจะดูข้อมูลได้แล้ว ยังสามารถแก้ไขข้อมูลได้ด้วย เป็นโอกาสของเราที่จะล้วงความลับและสร้างความเสียหายให้กับบริษัท C ซึ่งเป็นคู่แข่งของเราได้ ดีจังเลยนะคะที่บริษัท C ไม่ได้ทำการ encapsulate ซ่อนแฟ้มเอกสารนี้ไว้ ทำให้เราสามารถมองเห็นแฟ้มเอกสารนี้ได้ แย่แล้ว บุคคลภายนอกบริษัทดิฉันสามารถมองเห็นแฟ้มเอกสารนี้ได้ ข้อมูลของบริษัทต้องได้รับความเสียหายแน่นอนเลยค่ะ แฟ้มเอกสารนี้เป็น public (แฟ้มสาธารณะ)

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

  42. การสืบทอด (Inheritance) • การสืบทอด (Inheritance) คือการทำการสร้างสิ่งใหม่ขึ้นด้วยการ สืบทอดหรือรับเอาคุณสมบัติบางอย่างมาจากสิ่งเดิมที่มีอยู่แล้ว และสร้างเพิ่มเติมได้ • ข้อดี • สามารถนำสิ่งที่เคยสร้างขึ้นแล้วนำกลับมาใช้ใหม่ (re-use) ได้ • ประหยัดเวลา

  43. การสืบทอด (Inheritance) ผมนาย ก. เป็นพนักงานคนหนึ่งครับ (Employee) คุณสมบัติผมประกอบด้วยรหัสพนักงานและตำแหน่ง ใครเป็นพนักงานเหมือนกัน เชิญสืบทอดคุณสมบัติของผมไปใช้งานได้เลยครับ ผมนาย ข. เป็นผู้จัดการครับ (Manager) ผมก็เป็นพนักงานคนหนึ่ง ดังนั้นจึงทำการสืบทอดคุณสมบัติมาจากนาย ก. ทำให้มีคุณสมบัติประกอบด้วยรหัสพนักงาน และตำแหน่ง แต่ในฐานะที่ผมเป็นผู้จัดการ ผมได้รับรถประจำตำแหน่งด้วย ดังนั้นผมจึงต้องสร้างคุณสมบัติขึ้นมาอีก 1 ข้อ inherit รหัสพนักงานตำแหน่ง รหัสพนักงานตำแหน่งรถประจำตำแหน่ง

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

  45. Polymorphism (การพ้องรูป) • ตัวอย่างเช่น public void calculate (int x) {} public void calculate (double x) {} • เมธอดชื่อ calculate เหมือนกัน แต่มีการรับค่าเข้ามาภายใน เมธอดที่แตกต่างกัน • เมธอดชื่อเดียวกันสามารถรับอาร์กิวเมนต์ที่แตกต่างกันได้หลายรูปแบบนี้ เรียกว่าเมธอดนั้นถูกโอเวอร์โหลด (overload)

  46. Polymorphism (การพ้องรูป) สรุป ข้อดีของ Polymorphism คือ การทำให้สิ่งหนึ่งสามารถทำงานได้หลากหลายรูปแบบตามความต้องการที่เกิดขึ้นในขณะหนึ่ง ๆ ถ้าเป็นลูกค้าขาจร ผมจะใช้เมธอด public void calculate(double y) ในการคำนวณราคาครับ ไม่ได้ซื้อประจำลดให้ไม่ได้ครับ เศษเล็กเศษน้อยต้องคิด แต่ถ้าเป็นลูกค้าประจำ ผมจะใช้เมธอด public void calculate(int x) ในการคำนวณราคาครับ เศษเล็ก ๆ น้อย ๆ ไม่คิดครับ

  47. ประวัติของภาษาจาวา

  48. ประวัติของภาษาจาวา • เริ่มต้นขึ้นใน ปี ค.ศ. 1990 • แพททริก นอทัน(Pattrick Naughton) เขียนข้อผิดพลาดที่เกิดขึ้นในบริษัท ซันไมโครซิสเต็มส์ • เจมส์ กอสลิ่ง(James Gosling) ผู้ให้กำเนิดภาษาจาวา

  49. ประวัติของภาษาจาวา • กรีนทีม (Green Project) • วัตถุประสงค์คือการสร้างคอมพิวเตอร์รุ่นใหม่ • ยุคถัดจากคอมพิวเตอร์ส่วนบุคคล (personal computer) ก็คือคอมพิวเตอร์ในอุปกรณ์อิเล็กโทรนิกส์ (consumer electronics)

  50. ประวัติของภาษาจาวา ดุ๊ค - รีโมตคอนโทรลควบคุมอุปกรณ์อิเล็กทรอนิกส์ มีชื่อว่า “สตาร์เซเว่น” (*7)- ภาษาที่ใช้ควบคุมอุปกรณ์อิเล็กทรอนิกส์คือ “ภาษาโอ๊ค” (Oak)

More Related