1 / 38

การโปรแกรม การออกแบบ และการวิเคราะห์เชิงวัตถุ Object-Oriented Programming, Design and Analysis

การโปรแกรม การออกแบบ และการวิเคราะห์เชิงวัตถุ Object-Oriented Programming, Design and Analysis. สาขาวิชาวิทยาการคอมพิวเตอร์ ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร. แนวความคิดภาษาเชิงวัตถุ. การเน้นที่ปัญหาและองค์ประกอบของปัญหาเพื่อการแก้ปัญหานั้น เราเรียกว่า Problem space

Faraday
Télécharger la présentation

การโปรแกรม การออกแบบ และการวิเคราะห์เชิงวัตถุ Object-Oriented Programming, Design and Analysis

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, Design and Analysis สาขาวิชาวิทยาการคอมพิวเตอร์ ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร

  2. แนวความคิดภาษาเชิงวัตถุแนวความคิดภาษาเชิงวัตถุ • การเน้นที่ปัญหาและองค์ประกอบของปัญหาเพื่อการแก้ปัญหานั้น เราเรียกว่า Problem space • เหมือนการจำลองความเป็นจริงในชีวิตความเป็นอยู่ของมนุษย์ที่จะประกอบด้วย คน สัตว์ สิ่งของ และใช้สิ่งต่างๆ เพื่อแก้ปัญหา คือแต่ละสิ่ง มีหน้าที่ในการแก้ปัญหา ต้องการหาความบันเทิงด้วยดนตรี ก็ต้องมีสิ่งต่างๆ คือเครื่องดนตรีและ คนเล่นดนตรี เป็นต้น

  3. แนวคิดของเอลัน เคย์ (Alan Kay) เป็นผู้หนึ่งที่พัฒนาตัวแปร small Talk ซึ่งเป็นต้นแบบของการเขียนโปรแกรมเชิงวัตถุ ได้ให้นิยามของภาษาเชิงวัตถุไว้ดังนี้ • ทุกๆ สิ่งเป็นวัตถุ • โปรแกรม คือ กลุ่มของวัตถุที่ส่งสารบอกกันเพื่อทำงาน • วัตถุแต่ละวัตถุมีหน่วยความจำ • วัตถุต้องมีชนิด • วัตถุที่จัดอยู่ในประเภทเดียวกันย่อมได้รับข่าวสารเหมือนกัน

  4. ทุกๆ สิ่งเป็นวัตถุ • องค์ประกอบของโปรแกรมคอมพิวเตอร์ทุก ๆ ส่วนจะต้องเป็นวัตถุซึ่งกฎข้อนี้เองที่ทำให้ล่ามแปลภาษาส่วนมากรวมทั้ง JAVA ด้วย ไม่เป็นภาษาเชิงวัตถุแบบบริสุทธิ์เพราะในล่ามแปลภาษา JAVA ยังมีบางส่วนที่ไม่เป็นวัตถุ เช่น การกำหนดตัวแปร เป็นต้น

  5. หน่วยความจำคอมพิวเตอร์หน่วยความจำคอมพิวเตอร์

  6. โปรแกรมคือกลุ่มของวัตถุโปรแกรมคือกลุ่มของวัตถุ • โปรแกรมในความหมายของการเขียนโปรแกรมเชิงวัตถุ ก็คือ กลุ่มของวัตถุที่ส่งข้อความข่าวสาร(Message) ถึงกันและกันเพื่อบอกให้วัตถุทำงาน

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

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

  9. ตัวอย่างชนิดของวัตถุและวัตถุตัวอย่างชนิดของวัตถุและวัตถุ :siemens MobilePhone String bandname Button button Screen screen Antenna antenna Simm simNet :ericsson call() receive() hangup() sendSMS() :nokia

  10. วัตถุประเภทเดียวกันย่อมได้ข่าวสารเหมือนกันวัตถุประเภทเดียวกันย่อมได้ข่าวสารเหมือนกัน • วัตถุที่อยู่ในประเภทเดียวกันย่อมได้ข่าวสารเหมือนกัน คุณสมบัติข้อนี้ทำให้การเขียนโปรแกรมเชิงวัตถุมีประสิทธิภาพเพิ่มขึ้นเพราะชนิดของวัตถุมิได้กำหนดหรืออยู่อย่างโดด ๆ แต่สามารถจัดเป็นกลุ่ม ผู้เขียนคำสั่งสามารถกำหนดชนิดย่อย ๆ ของวัตถุได้อีก เช่น คลาสคือ shape เราสามารถแตกออกเป็นชนิดที่จำเพาะลงไปเป็น Circle, Triangle, Rectangle เป็นต้น ดังนั้นเมื่อวัตถุในคลาส Circle สามารถได้รับข่าวสารเหมือนกับ Triangle และ Rectangle

  11. แนวคิดที่เป็นอัตประโยชน์จากการโปรแกรมเชิงวัตถุแนวคิดที่เป็นอัตประโยชน์จากการโปรแกรมเชิงวัตถุ • การซ่อนรายละเอียด • การเชื่อมต่อ • การนำวัตถุมาใช้ใหม่ • การพ้องรูป: หนึ่งรูปหลายพฤติกรรม

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

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

  14. การนำวัตถุมาใช้ใหม่(Reusable)การนำวัตถุมาใช้ใหม่(Reusable) • จุดประสงค์ใหญ่ของการเขียนโปรแกรมเชิงวัตถุก็คือการนำส่วนต่างๆ ของวัตถุที่สร้างขึ้นกลับมาใช้ใหม่หรือที่เรียกในภาษาอังกฤษว่า “reuse” เมื่อมีวัตถุถูกสร้างขึ้นมา ก็สามารถนำวัตถุต่างๆ มาประกอบกันเป็นวัตถุอีกชนิดหนึ่งได้ เพื่อให้วัตถุใหม่มีความสามารถมากกว่าเดิม เช่นกรณีของรถยนต์สามารถประกอบขึ้นจาก เครื่องยนต์ ตัวถัง ประตู และล้อ เป็นต้น

  15. ตัวอย่างวัตถุที่เกิดจากวิธีคอมโพสิตตัวอย่างวัตถุที่เกิดจากวิธีคอมโพสิต

  16. การพ้องรูป (Polymorphism) • รากฐานของการพ้องรูปคือคุณสมบัติการถ่ายทอด • คุณสมบัติการถ่ายทอดยืนยันได้ว่าคลาสลูกที่เกิดจากคลาสแม่เดียวกันย่อมมีคุณสมบัติเหมือนกัน • เป็นที่มาของหนึ่งรูปหลายพฤติกรรม คลาสแม่คือ Shape คลาสลูกคือ Circle, Triangle, Rectangle มีคุณสมบัติเหมือน คลาสแม่ทุกประการ

  17. Shape Circle Line Rectangle +draw() +erase() +draw() +erase() +draw() +erase() +draw() +erase() การถ่ายทอดให้เกิดลักษณะของพ้องรูป

  18. มารู้จักคลาสและวัตถุกันมารู้จักคลาสและวัตถุกัน • คลาสเป็นเหมือนส่วนของแม่พิมพ์ เพื่อบอกลักษณะว่าวัตถุในคลาสนี้มีลักษณะและพฤติกรรมเป็นอย่างไร • วัตถุเป็นสิ่งที่ถูกสร้างขึ้นมาจากคลาสเพื่อใช้งาน กำหนดค่าต่างๆ ส่งข้อความสั่งให้วัตถุทำงาน คลาสสี่เหลี่ยมผืนผ้า คุณสมบัติ:กว้าง, ยาว เมธทอด:คำนวณพื้นที่ วัตถุA:สี่เหลี่ยมผืนผ้า กว้าง 2 ยาว 3 เมธทอด:คำนวณพื้นที่

  19. เปรียบเทียบคลาสกับวัตถุเปรียบเทียบคลาสกับวัตถุ

  20. ภาษาโปรแกรมเชิงวัตถุ • ในปี 1967 ภาษา Simula67 ถูกพัฒนาที่นอร์เวย์ เพื่อช่วยในการเขียนโปรแกรมสำหรับจำลอง (simulation) • โดยทั่วไประบบที่ซับซ้อนจะประกอบด้วยวัตถุจำนวนมากที่ทำงานเกี่ยวข้องกัน โดยการสร้างโปรแกรมที่จำลองการทำงานของแต่ละวัตถุไปที่ละขั้นจนกว่าจะได้คำตอบ ซึ่งแนวคิดนี้เรียกว่า การโปรแกรมเชิงวัตถุ • 1990s มีภาษาเก่าถูกเพิ่มเติมในส่วนของการโปรแกรมเชิงวัตถุ แต่โดยพื้นฐานของภาษาจึงทำให้กลไกไม่เป็นเชิงวัตถุอย่างสมบูรณ์

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

  22. การออกแบบของภาษาจาวา • เป็นภาษาที่ง่าย ต่อการเรียนและเข้าใจ • เป็นภาษาเชิงวัตถุ • เป็นภาษาที่มีความคงทน เพราะมีการดักจับข้อผิดพลาด • เป็นภาษาที่มีความปลอดภัย • เป็นภาษาที่รันได้กับเครื่องทุกระบบ “จาวาเป็นแพลตฟอร์ม”

  23. จาวาเป็นแพลตฟอร์ม • เนื่องจากจาวาได้ถูกพัฒนาเพื่อให้สามารถรันบนระบบใดก็ได้ ดังนั้นจาวาจึงได้สร้างแพลตฟอร์มของมันเองขึ้นมาเพื่อให้การแปลความของภาษาจาวาเป็นหนึ่งเดียวเท่านั้น • จาวาได้นำแนวคิดการจำลองเครื่องจักรสมมุติขึ้นมาเรียกว่า java virtual machine (JVM) เพื่อมาติดต่องานกับระบบที่มีอยู่

  24. จาวาและเครื่องจักรสมมุติจาวาและเครื่องจักรสมมุติ • แผนผังแสดงการติดต่อของจาวาและเครื่องจักรสมมุติ Java program Java program Java program Java virtual machine Windows Unix Macintosh

  25. แผนผังแสดงการทำงานของภาษาจาวาแผนผังแสดงการทำงานของภาษาจาวา java compiler Java program Java virtual machine program java interpreter

  26. แรกเริ่มกับจาวา • ดาวน์โหลดชุดพัฒนาภาษาจาวาที่เวบต์ http://java.sun.com/j2se Java virtual machine : JRE (Java Runtime Environment) Java Developer Kit : JDK

  27. ขั้นตอนการติดตั้งชุดพัฒนาภาษาจาวาขั้นตอนการติดตั้งชุดพัฒนาภาษาจาวา • ดับเบิ้ลคลิกไอคอนนี้เพื่อทำการติดตั้ง

  28. ขั้นตอนการติดตั้งชุดพัฒนาภาษาจาวาขั้นตอนการติดตั้งชุดพัฒนาภาษาจาวา

  29. ขั้นตอนการติดตั้งชุดพัฒนาภาษาจาวาขั้นตอนการติดตั้งชุดพัฒนาภาษาจาวา

  30. กำหนดเส้นทางของคำสั่งในชุดพัฒนาภาษาจาวากำหนดเส้นทางของคำสั่งในชุดพัฒนาภาษาจาวา • คลิกขวาที่ไอคอน My computer • เลือก properties จากเมนูบ๊อบอัพ • จะปรากฏหน้าต่างดังด้านขวา • คลิก Environment variable

  31. กำหนดเส้นทาง(ต่อ) • เลือก path จาก System variable • คลิก Edit • เพิ่มข้อความในส่วนแถบสีฟ้า ;C:\j2sdk1.4.1_02\bin;.

  32. ขั้นตอนการสร้างโปรแกรมจาวาขั้นตอนการสร้างโปรแกรมจาวา A.java javac A.java A.class java A 1. editor 2. compiler javac filename.java 3. interpreter java filename

  33. มารู้จักซอฟแวร์สำหรับสร้างโปรแกรมภาษามารู้จักซอฟแวร์สำหรับสร้างโปรแกรมภาษา • ซอฟต์แวร์ที่ใช้ชื่อว่า EditPlus • สามารถสร้างโปรแกรมได้หลายภาษาโดยจะมีสีแยกประเภทของคำในแต่ละภาษาให้ ทำให้สะดวกต่อการอ่านโปรแกรม • ให้ทำการสร้าง config เพื่อให้โปรแกรมเราสามารถคอมไพล์ไฟล์โปรแกรมจาวาและรันไฟล์โปรแกรมจาวาได้

  34. สร้าง config ใน EditPlus กันก่อนนะคะ • ทำการสร้าง configเพื่อให้โปรแกรม EditPlusสามารถคอมไพล์และรันโปรแกรมภาษาจาวาได้

  35. สร้าง config ใน EditPlus กันก่อนนะคะ คลิก add tool/Program แล้วเติมข้อความดังในภาพด้านล่างทั้งสอง ขวา set interpreter ซ้าย set compiler

  36. เริ่มใช้โปรแกรมEditPlus • เปิดโปรแกรม EditPlusขึ้นมา • คลิกเมนู File/New เลือก java • ลองพิมพ์ไฟล์ต่อไปนี้แล้วบันทึกในชื่อ Welcome1.java /** A first program in Java.*/ public class Welcome1 { /* main method begins execution of Java application */ public static void main ( String args[] ) { System.out.println(“Welcome to Java Programming!”); } // end method main } // end class Welcome1

  37. ลองสร้างโปรแกรมแรกกันเถอะลองสร้างโปรแกรมแรกกันเถอะ

More Related