บทที่ 7วิธีการเชิงวัตถุและการออกแบบคลาส
คีย์เวิร์ด static        ในการออกแบบคลาสนั้นถ้าหากต้องการให้มีตัวแปรหนึ่ง เป็นตัวแปรคลาสสาหรับเก็บคุณลักษณะประจาหรือพฤติกร...
คุณลักษณะของวิธีการเชิงวัตถุ (class)      วิธีการเชิงวัตถุจะสมบรูณ์ได้จะต้องประกอบด้วยคุณสมบัติ 3ประการ ได้แก่ การห่อหุ้ม ...
คุณลักษณะของวิธีการเชิงวัตถุ (class) (ต่อ)1. การห่อหุ้ม (Encapeulation) ลักษณะที่สาคัญของการเขียนโปรแกรมเชิงวัตถุก็คือ ข้อ...
คุณลักษณะของวิธีการเชิงวัตถุ (class) (ต่อ)2. การสืบทอด (Inheritance) อินเฮอริแทนซ์ (Inheritance) หรือการสืบทอดเป็นการนาออบ...
การสืบทอด (Inheritance)          เป็นการสืบทอดเมธอดและคุณลักษณะจากคลาสแม่มาสู่คลาสลูกโดยคลาสลูกที่สร้างขึ้นจะมีลักษณะคล้าย...
การสืบทอด (Inheritance) (ต่อ)การเข้าถึงสมาชิกในคลาส       ในการเขียนโปรแกรมแบบออบเจ็กต์นั้น โดยทัวไปแล้ว่คุณลักษณะของคลาสม...
การสืบทอด (Inheritance) (ต่อ)การห้ามไม่ให้มีการสืบทอด        ในการออกแบบคลาสนั้น หากไม่ต้องการให้มีคลาสใดที่สามารถสืบทอดจา...
คอนสตรัคเตอร์และการสืบทอด         คลาสลูกที่มีการสืบทอดมาจากคลาสแม่สามารถมีคอนสตรัคเตอร์ได้เช่นกัน จากตัวอย่างคลาสสามเหลี่...
การออกแบบโปรแกรมเชิงวัตถุ       ในการเขียนโปรแกรมเชิงวัตถุนั้นจะต้องเริ่มจากการจาแนกความแตกต่างของวัตถุที่ใช้ในโปรแกรมออกม...
การออกแบบโปรแกรมเชิงวัตถุ (ต่อ)         สาหรับการเขียนไดอะแกรมคลาสจะประกอบด้วยส่วนต่างๆ สามส่วนคือ ชื่อคลาส คุณลักษณะของคล...
การออกแบบโปรแกรมเชิงวัตถุ (ต่อ)ตัวอย่าง ถ้าหากออกแบบคลาสของระบบตัดเกรดนักศึกษา โดยให้คลาสนี้มีตัวแปร score สาหรับเก็บคะแนน...
กรณีศึกษาการออกแบบโปรแกรมเชิงวัตถุ          จากที่ศกษามาจะพบว่าการนาวิธีการสืบทอดคลาสมาใช้ ทาให้การ                 ึเขียน...
กรณีศึกษาการออกแบบโปรแกรมเชิงวัตถุ (ต่อ)ตัวอย่างข้อมูลบุคคลในมหาวิทยาลัย         ถ้าหากในมหาวิทยาลัยแห่งหนึ่งมีผู้คนอยู่ใน...
กรณีศึกษาการออกแบบโปรแกรมเชิงวัตถุ (ต่อ) โปรแกรม คลาส Person
กรณีศึกษาการออกแบบโปรแกรมเชิงวัตถุ (ต่อ)      เมื่อสร้างคลาส Personสาหรับเก็บข้อมูลบุคคลทั่วไปแล้ว การออกแบบคลาสสาหรับเก็บ...
สรุป         ในเขียนโปรแกรมเชิงวัตถุนั้นจะมีการรวมคุณสมบัติและพฤติกรรมของสิ่งต่างๆ ที่เกิดขึ้นในโปรแกรมแล้วสร้างออกมาเป็นค...
บทที่ 12การเขียนโปรแกรมโดยใช้ NetBeans
โปรแกรม NetBeans เป็นโปรแกรม IDE สาหรับเขียนโปรแกรมภาษาจาวาในลักษณะต่างๆ เป็นโปรแกรมที่เพียงแต่เติม และจัดระเบียบโค้ดโปรแก...
เริ่มต้นเขียนโปรแกรมแรกด้วย NetBeans        เริ่มต้นสร้างโปรเจ็กต์ใหม่โดยเลือกเมนู File > New Projectจากนั้นโปรแกรมจะแสดงห...
เริ่มต้นเขียนโปรแกรมแรกด้วย NetBeans(ต่อ)        แล้วกด Next > ตังชือโปรเจ็กต์ > Finish เมื่อคลิก Finish โปรแกรม          ...
เริ่มต้นเขียนโปรแกรมแรกด้วย NetBeans(ต่อ)        สาหรับคอนโทรลต่างๆ มีให้เลือกมากมายสามารถนามาใช้งานได้ โดยสามารถลากมาวางบ...
การดีบักโปรแกรม        การเขียนโปรแกรมคอมพิวเตอร์นั้นบางครั้งอาจต้องพิจารณาค่าของตัวแปรต่างๆ ที่เกิดขึ้นระหว่างการทางานของ...
สมาชิกนางสาว ไพลิน      สืบเรือง         เลขที่ 22นางสาวธนัชกัญ     พูลผล            เลขที่ 24นางสาวพัชรวลัย    ดีประชา   ...
Java 7&12 6 2
Upcoming SlideShare
Loading in …5
×

Java 7&12 6 2

901 views
779 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
901
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Java 7&12 6 2

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

×