Your SlideShare is downloading. ×

Java 7&12 6 2

570
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
570
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. บทที่ 7วิธีการเชิงวัตถุและการออกแบบคลาส
  • 2. คีย์เวิร์ด static ในการออกแบบคลาสนั้นถ้าหากต้องการให้มีตัวแปรหนึ่ง เป็นตัวแปรคลาสสาหรับเก็บคุณลักษณะประจาหรือพฤติกรรมต่างๆโดยที่ตัวแปรนี้จะเก็บอยู่ในหน่วยความจาที่เดียวกัน ตัวแปรนี้เรียกว่า classvariables หรือ static variables โดยการสร้างตัวแปรนี้จะใช้คาว่า staticนาหน้าทุกออบเจ็กต์ที่สร้างขึ้นจะใช้ตัวแปรนี้เป็นตัวเดียวกัน
  • 3. คุณลักษณะของวิธีการเชิงวัตถุ (class) วิธีการเชิงวัตถุจะสมบรูณ์ได้จะต้องประกอบด้วยคุณสมบัติ 3ประการ ได้แก่ การห่อหุ้ม การสืบทอด มีได้หลายรูปแบบ
  • 4. คุณลักษณะของวิธีการเชิงวัตถุ (class) (ต่อ)1. การห่อหุ้ม (Encapeulation) ลักษณะที่สาคัญของการเขียนโปรแกรมเชิงวัตถุก็คือ ข้อมูลหรือคุณลักษณะบางอย่างที่สร้างขึ้นในคลาสสามารถปกป้องหรือถูกห่อหุ้มอยู่ภายในไม่ให้ออบเจ็กต์สามารถเข้าใช้งานหรือเข้าไปแก้ไขข้อมูลได้ เช่น ถ้าสร้างคลาสสาหรับวงกลมชื่อ Cricle ภายในคลาสมีเมธอดสาหรับกาหนดค่ารัศมี เมธอดสาหรับหาเส้นรอบวงกลม และมีข้อมูลที่เป็นรัศมีวงกลมสาหรับให้เป็นค่าคงทีในการคานวณหาเส้นรอบวงกลม การสร้าง ่คลาสลักษณะนี้ ค่ารัศมีจะใช้ภายในคลาสเท่านั้น ไม่ควรให้ออบเจ็กต์แก้ไขได้ เนื่องจากอาจทาให้การคานวณหาค่าเส้นรอบวงผิดไปหมดคุณลักษณะ แบบนี้เรียกว่า การห่อหุ้ม
  • 5. คุณลักษณะของวิธีการเชิงวัตถุ (class) (ต่อ)2. การสืบทอด (Inheritance) อินเฮอริแทนซ์ (Inheritance) หรือการสืบทอดเป็นการนาออบเจ็กต์มาสร้างลาดับความสัมพันธ์เป็นลาดับชั้น สามารถนาคลาสที่มีอยู่แล้ว หรือนาโปรแกรมที่ได้เขียนไว้แล้วนากลับมาใช้ใหม่ได้อีกสามารถสร้างคลาสใหม่ที่สืบทอดมาจากคลาสที่มีอยู่แล้วได้ เป็นการถ่ายทอดคุณสมบัติของคลาสหนึ่งไปยังอีกคลาสหนึ่ง ซึ่งทาให้คลาสใหม่นี้สามารถนาคุณลักษณะและเมธอดของคลาสเดิมมาใช้ได้ คลาสที่เป็นต้นแบบจะเรียกว่า superclass หรือ base class หรือเรียกสั้นๆว่า คลาสแม่ ส่วนคลาสที่สืบทอดจะเรียกว่า subclass หรือ child class หรือ เรียกว่า คลาสลูก
  • 6. การสืบทอด (Inheritance) เป็นการสืบทอดเมธอดและคุณลักษณะจากคลาสแม่มาสู่คลาสลูกโดยคลาสลูกที่สร้างขึ้นจะมีลักษณะคล้ายๆกับคลาสแม่ แต่จะมีคุณสมบัติพิเศษเป็นการเฉพาะมากกว่า ตัวอย่าง เช่น ถ้าหากเรามีคลาสของรูปร่างสองมิติเป็นคลาสแม่ เราอาจสร้างคลาสลูกเป็นคลาสของสามเหลี่ยม คลาสของสี่เหลี่ยม และคลาสของวงกลมที่สืบทอดมาจากคลาสของรูปร่างสองมิติได้ในการเขียนโปรแกรมด้วยภาษาจาวาการสร้างของคลาสจะใช้คา ว่าextends ในการบอกว่าคลาสที่สร้างขึ้นมีการสืบทอด มาจากคลาสใด
  • 7. การสืบทอด (Inheritance) (ต่อ)การเข้าถึงสมาชิกในคลาส ในการเขียนโปรแกรมแบบออบเจ็กต์นั้น โดยทัวไปแล้ว่คุณลักษณะของคลาสมักจะไม่ยอมให้ออบเจ็กต์ภายนอกเข้าถึงได้โดยตรงโดยจะใช้คาว่า private เขียนกากับไว้ ถ้าหากคลาส TwoDShapeประกาศตัวแปรคุรลักษณะเป็น private คลาส Triangle ก็จะไม่สามารถใช้ตัวแปรนั้นได้ด้วย แต่ถ้าหากเป็นตัวแปรที่เข้าถึงได้เฉพาะสมาชิกของคลาส หรือสมาชิกในคลาสลูกเท่านั้นจะใช้คาว่า protected
  • 8. การสืบทอด (Inheritance) (ต่อ)การห้ามไม่ให้มีการสืบทอด ในการออกแบบคลาสนั้น หากไม่ต้องการให้มีคลาสใดที่สามารถสืบทอดจากคลาสที่สร้างขึ้นได้ก็ทาได้เช่นกัน โดยใช้คาว่า finalในตอนที่ประกาศสร้างคลาส ตัวอย่างเช่น หากสร้างคลาส TwoDShapeแล้วไม่ต้องการให้คลาสใดสืบทอดจากคลาสนี้ได้ สามารถเขียนตอนประกาศคลาสได้ดังนี้
  • 9. คอนสตรัคเตอร์และการสืบทอด คลาสลูกที่มีการสืบทอดมาจากคลาสแม่สามารถมีคอนสตรัคเตอร์ได้เช่นกัน จากตัวอย่างคลาสสามเหลี่ยมที่สร้างขึ้น อาจมีคอนสตรัคเตอร์สาหรับกาหนดความยาวของด้านต่างๆได้ โดยสร้างเมธอดที่มีชื่อเดียวกับชื่อคลาสลูก รูปแบบ super(parameter-list); โดยพารามิเตอร์ของ super คือค่าที่กาหนดให้กับคอนสตรัค เตอร์ของคลาสแม่
  • 10. การออกแบบโปรแกรมเชิงวัตถุ ในการเขียนโปรแกรมเชิงวัตถุนั้นจะต้องเริ่มจากการจาแนกความแตกต่างของวัตถุที่ใช้ในโปรแกรมออกมา รวมทั้งพิจารณาถึงพฤติกรรมของวัตถุนั้นด้วย จากนั้นพยายามรวบรวมออกมาเป็นคลาสให้ได้ หากออกแบบคลาสได้แล้วควรเขียนไดอะแกรมของคลาส (ClassDiagram) ออกมา โดยทั่วไปแล้วมักจะใช้ภาษารูปแบบกราฟิกที่เรียกว่าUML คานี้ย่อมาจาก Unlflied Modelling Language ซึ่งถือว่าเป็นภาษามาตรฐานในการลาลองระบบซอฟต์แวร์
  • 11. การออกแบบโปรแกรมเชิงวัตถุ (ต่อ) สาหรับการเขียนไดอะแกรมคลาสจะประกอบด้วยส่วนต่างๆ สามส่วนคือ ชื่อคลาส คุณลักษณะของคลาส และเมธอดของคลาส โดยในไดอะแกรมจะระบุความสามารถในการเข้าถึงคุณลักษณะและตัวแปรต่างๆด้วย ถ้าหากตัวแปรหรือเมธอดใดเป็นแบบ private จะใช้เครื่องหมาย (-) แต่ถ้าหากตัวแปรหรือเมธอดใดเป็นแบบ public จะใช้เครื่องหมาย (+)
  • 12. การออกแบบโปรแกรมเชิงวัตถุ (ต่อ)ตัวอย่าง ถ้าหากออกแบบคลาสของระบบตัดเกรดนักศึกษา โดยให้คลาสนี้มีตัวแปร score สาหรับเก็บคะแนน และมีเมธอด setScores() สาหรับกาหนดคะแนนนักศึกษา เมธอด getScore() สาหรับอ่านคะแนนนักศึกษาและเมธอด getGrade() สาหรับอ่านเกรดนักศึกษา จะเขียนเป็น UML ของคลาสชื่อ GradedActivity และโปรแกรมได้ดังนี้
  • 13. กรณีศึกษาการออกแบบโปรแกรมเชิงวัตถุ จากที่ศกษามาจะพบว่าการนาวิธีการสืบทอดคลาสมาใช้ ทาให้การ ึเขียนโปรแกรมเชิงวัตถุมีประสิทธิภาพมากขึ้น การออกแบบโปรแกรมทาได้ง่ายขึ้น สาหรับหัวข้อนี้จะแสดงตัวอย่างการออกแบบโปรแกรมชิงวัตถุที่มีการนาวิธีการสืบทอดคลาสมาใช้งาน
  • 14. กรณีศึกษาการออกแบบโปรแกรมเชิงวัตถุ (ต่อ)ตัวอย่างข้อมูลบุคคลในมหาวิทยาลัย ถ้าหากในมหาวิทยาลัยแห่งหนึ่งมีผู้คนอยู่ในระบบเป็นจานวนมาก บางท่านเป็นเจ้าหน้าที่ เป็นพนักงานของมหาวิทยาลัย เป็นนักศึกษาในส่วนของนักศึกษายังแบ่งเป็นนักศึกษาระดับปริญญาตรี และนักศึกษาระดับบัณฑิตศึกษา ถ้าหากต้องการออกแบบโปรแกรมสาหรับเก็บข้อมูลบุคคลต่างๆ ที่เกี่ยวข้องในมหาวิยาลัยแห่งนี้ เราอาจสร้างคลาสของบุคคลขึ้นมาเป็นคลาสแม่ สาหรับรายละเอียดของบุคคลประเภทอื่น ๆ ให้สร้าง คลาสสืบทอดต่อจากคลาสแม่นี้ สาหรับบุคคลที่ใช้เก็บข้อมูลทั่วไป ออกแบบได้ดังโปรแกรม
  • 15. กรณีศึกษาการออกแบบโปรแกรมเชิงวัตถุ (ต่อ) โปรแกรม คลาส Person
  • 16. กรณีศึกษาการออกแบบโปรแกรมเชิงวัตถุ (ต่อ) เมื่อสร้างคลาส Personสาหรับเก็บข้อมูลบุคคลทั่วไปแล้ว การออกแบบคลาสสาหรับเก็บข้อมูลนักศึกษา หรือบุคลากรต่างๆ อาจใช้วิธีการสืบทอดคลาสมาออกแบบคลาสได้ดังแผนภาพต่อไปนี้
  • 17. สรุป ในเขียนโปรแกรมเชิงวัตถุนั้นจะมีการรวมคุณสมบัติและพฤติกรรมของสิ่งต่างๆ ที่เกิดขึ้นในโปรแกรมแล้วสร้างออกมาเป็นคลาส จากนั้นจะสร้างออบเจ็กต์ของคลาสนั้นๆ ออบเจ็กต์ต่างๆ จะสื่อสารกันผ่านทางเมธอดคุณสมบัติหนึ่งที่สาคัญของการเขียนโปรแกรมเชิงวัตถุคือ การสืบทอด(Inheritance) ซึ่งทาให้ผู้เขียนโปรแกรมสามารถนาคลาสที่เคยออกแบบไว้นามาใช้ได้อก โดยสร้างคลาสใหม่เป็นคลาสลูกที่มีคุณสมบัติเพิ่มเติมขึ้นมา ีโดยคลาสลูกนี้สามารถใช้คุณลักษณะและเมธอดต่างๆในคลาสแม่ได้ด้วย
  • 18. บทที่ 12การเขียนโปรแกรมโดยใช้ NetBeans
  • 19. โปรแกรม NetBeans เป็นโปรแกรม IDE สาหรับเขียนโปรแกรมภาษาจาวาในลักษณะต่างๆ เป็นโปรแกรมที่เพียงแต่เติม และจัดระเบียบโค้ดโปรแกรม ก็สามารถสร้างโปรแกรมประยุกต์ได้ง่าย และเป็นโปรแกรมที่หาใช้ได้ฟรี การเขียนโปรแกรมด้วย NetBeans นั้นจะไม่ต้องพิมพ์คาสั่งเพื่อ รันโปรแกรม เนื่องจากมีเมนูคาสั่งต่างๆ การเขียนโปรแกรมเมื่อพิมพ์ คาสั่งลงไป โปรแกรมจะประมวลผลเพื่อพิจารณาว่าเป็นคาสั่งหรือเมธอด ใด จากนั้นจะแสดงคาสั่งที่น่าจะเป็นออกมาให้เลือกใช้ ซึ่งเหมาะกับผูที่ ้ เขียนโปรแกรมไม่คล่อง และผู้ที่ไม่ชอบจาเมธอดต่างๆ
  • 20. เริ่มต้นเขียนโปรแกรมแรกด้วย NetBeans เริ่มต้นสร้างโปรเจ็กต์ใหม่โดยเลือกเมนู File > New Projectจากนั้นโปรแกรมจะแสดงหน้าต่าง New Project ขึ้นมา เราสามารถเลือกการสร้างโปรแกรมประยุกต์ได้หลายแบบ ในที่นี้จะสร้างโปรแกรมในลักษณะDesktop Application ด้วยจาวา ให้เลือกโปรเจ็กต์เป็น Java แล้วเลือก JavaDesktop Application
  • 21. เริ่มต้นเขียนโปรแกรมแรกด้วย NetBeans(ต่อ) แล้วกด Next > ตังชือโปรเจ็กต์ > Finish เมื่อคลิก Finish โปรแกรม ้ ่จะแสดงหน้าต่างโปรเจ็กต์ที่สร้างขึ้นมาใหม่จะอยู่ในกรอบเส้นประพร้อมทั้งแสดงเฟรมสาหรับออกแบบ GUI ออกมา ด้านขวามือจะเป็นส่วนของSwing คอมโพเนนต์ ซึ่งสามารถลากมาวางบนเฟรมได้
  • 22. เริ่มต้นเขียนโปรแกรมแรกด้วย NetBeans(ต่อ) สาหรับคอนโทรลต่างๆ มีให้เลือกมากมายสามารถนามาใช้งานได้ โดยสามารถลากมาวางบนฟอร์มได้ทันที เมื่อวางคอมโพเนนต์ใดลงไป เราสามารถเปลี่ยนคุณสมบัติได้ในหน้าต่างคุณสมบัติ ถ้าหากต้องการสร้างอีเวนต์ให้กับปุ่มได้โดย คลิกขวาที่ปุ่มแล้วเลือก Events แล้วเลือก Events ที่ ต้องการ ในทีนี้จะเลือก Events ที่เกิดจากเมาส์โดยเลือก ่ เป็น Mouse > mouseClicked โปรแกรมจะสร้างหน้าต่าง ซอร์สโค้ดออกมา ให้พิมพ์คาสั่งในตาแหน่งต่อจากคาว่า TODO ในที่นี้จะพิมพ์ System.out.println(“Hello JAVA”); เพื่อแสดงข้อความออกทางคอนโซล เมื่อคลิก ไอคอนรันโปรแกรมจะแสดงหน้าต่างเอาต์พุต
  • 23. การดีบักโปรแกรม การเขียนโปรแกรมคอมพิวเตอร์นั้นบางครั้งอาจต้องพิจารณาค่าของตัวแปรต่างๆ ที่เกิดขึ้นระหว่างการทางานของโปรแกรม เพื่อตรวจสอบข้อผิดพลาดบางอย่างที่อาจเกิดขึ้นได้ เช่น การใช้ตัวแปรผิด การเขียนนิพจน์ผิด ซึ่งข้อผิดพลาดเหล่านั้นเรียกว่าบั๊ก (bug) แต่เนื่องจากโปรแกรมทางานเร็วมาก บางครั้งอาจต้องให้โปรแกรมหยุดในตาแหน่งที่ต้องการเพื่อตรวจสอบข้อผิดพลาดหรือเพื่อแก้บก โปรแกรม NetBeans สามารถ ั๊ กาหนดจุดหยุดของโปรแกรมชั่วคราว หรือดูค่าของตัวแปร ระหว่างโปรแกรมทางานได้
  • 24. สมาชิกนางสาว ไพลิน สืบเรือง เลขที่ 22นางสาวธนัชกัญ พูลผล เลขที่ 24นางสาวพัชรวลัย ดีประชา เลขที่ 25นางสาวศศิวิมล สมบูรณ์ศิริ เลขที่ 27นางสาวจิรวัฒ สลุงอยู่ เลขที่ 38นางสาวรวิสรา จารุเชษฐ์อัศนี เลขที่ 39นางสาวเมธาวี เงินยวง เลขที่ 40 ชั้น ม.6/2

×