SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
บทที่ 7
วิธีการเชิงวัตถุและการออกแบบคลาส
คีย์เวิร์ด static
        ในการออกแบบคลาสนั้นถ้าหากต้องการให้มีตัวแปรหนึ่ง เป็น
ตัวแปรคลาสสาหรับเก็บคุณลักษณะประจาหรือพฤติกรรมต่างๆโดยที่
ตัวแปรนี้จะเก็บอยู่ในหน่วยความจาที่เดียวกัน ตัวแปรนี้เรียกว่า class
variables หรือ static variables โดยการสร้างตัวแปรนี้จะใช้คาว่า static
นาหน้าทุกออบเจ็กต์ที่สร้างขึ้นจะใช้ตัวแปรนี้เป็นตัวเดียวกัน
คุณลักษณะของวิธีการเชิงวัตถุ (class)
      วิธีการเชิงวัตถุจะสมบรูณ์ได้จะต้องประกอบด้วยคุณสมบัติ 3
ประการ ได้แก่ การห่อหุ้ม การสืบทอด มีได้หลายรูปแบบ
คุณลักษณะของวิธีการเชิงวัตถุ (class) (ต่อ)
1. การห่อหุ้ม (Encapeulation) ลักษณะที่สาคัญของการเขียนโปรแกรมเชิง
วัตถุก็คือ ข้อมูลหรือคุณลักษณะบางอย่างที่สร้างขึ้นในคลาสสามารถปกป้อง
หรือถูกห่อหุ้มอยู่ภายในไม่ให้ออบเจ็กต์สามารถเข้าใช้งานหรือเข้าไปแก้ไข
ข้อมูลได้ เช่น ถ้าสร้างคลาสสาหรับวงกลมชื่อ Cricle ภายในคลาสมีเมธอด
สาหรับกาหนดค่ารัศมี เมธอดสาหรับหาเส้นรอบวงกลม และมีข้อมูลที่เป็น
รัศมีวงกลมสาหรับให้เป็นค่าคงทีในการคานวณหาเส้นรอบวงกลม การสร้าง
                                    ่
คลาสลักษณะนี้ ค่ารัศมีจะใช้ภายในคลาสเท่านั้น ไม่ควรให้ออบเจ็กต์แก้ไขได้
         เนื่องจากอาจทาให้การคานวณหาค่าเส้นรอบวงผิดไปหมดคุณลักษณะ
          แบบนี้เรียกว่า การห่อหุ้ม
คุณลักษณะของวิธีการเชิงวัตถุ (class) (ต่อ)
2. การสืบทอด (Inheritance) อินเฮอริแทนซ์ (Inheritance) หรือการสืบทอด
เป็นการนาออบเจ็กต์มาสร้างลาดับความสัมพันธ์เป็นลาดับชั้น สามารถนา
คลาสที่มีอยู่แล้ว หรือนาโปรแกรมที่ได้เขียนไว้แล้วนากลับมาใช้ใหม่ได้อีก
สามารถสร้างคลาสใหม่ที่สืบทอดมาจากคลาสที่มีอยู่แล้วได้ เป็นการ
ถ่ายทอดคุณสมบัติของคลาสหนึ่งไปยังอีกคลาสหนึ่ง ซึ่งทาให้คลาสใหม่นี้
สามารถนาคุณลักษณะและเมธอดของคลาสเดิมมาใช้ได้ คลาสที่เป็น
ต้นแบบจะเรียกว่า superclass หรือ base class หรือเรียกสั้นๆว่า คลาสแม่
              ส่วนคลาสที่สืบทอดจะเรียกว่า subclass หรือ child class หรือ
              เรียกว่า คลาสลูก
การสืบทอด (Inheritance)
          เป็นการสืบทอดเมธอดและคุณลักษณะจากคลาสแม่มาสู่คลาสลูก
โดยคลาสลูกที่สร้างขึ้นจะมีลักษณะคล้ายๆกับคลาสแม่ แต่จะมีคุณสมบัติ
พิเศษเป็นการเฉพาะมากกว่า ตัวอย่าง เช่น ถ้าหากเรามีคลาสของรูปร่างสอง
มิติเป็นคลาสแม่ เราอาจสร้างคลาสลูกเป็นคลาสของสามเหลี่ยม คลาสของ
สี่เหลี่ยม และคลาสของวงกลมที่สืบทอดมาจากคลาสของรูปร่างสองมิติได้
ในการเขียนโปรแกรมด้วยภาษาจาวาการสร้างของคลาสจะใช้คา ว่า
extends ในการบอกว่าคลาสที่สร้างขึ้นมีการสืบทอด
        มาจากคลาสใด
การสืบทอด (Inheritance) (ต่อ)
การเข้าถึงสมาชิกในคลาส
       ในการเขียนโปรแกรมแบบออบเจ็กต์นั้น โดยทัวไปแล้ว่
คุณลักษณะของคลาสมักจะไม่ยอมให้ออบเจ็กต์ภายนอกเข้าถึงได้โดยตรง
โดยจะใช้คาว่า private เขียนกากับไว้ ถ้าหากคลาส TwoDShape
ประกาศตัวแปรคุรลักษณะเป็น private คลาส Triangle ก็จะไม่สามารถใช้
ตัวแปรนั้นได้ด้วย แต่ถ้าหากเป็นตัวแปรที่เข้าถึงได้เฉพาะสมาชิกของ
คลาส หรือสมาชิกในคลาสลูกเท่านั้นจะใช้คาว่า protected
การสืบทอด (Inheritance) (ต่อ)
การห้ามไม่ให้มีการสืบทอด
        ในการออกแบบคลาสนั้น หากไม่ต้องการให้มีคลาสใดที่
สามารถสืบทอดจากคลาสที่สร้างขึ้นได้ก็ทาได้เช่นกัน โดยใช้คาว่า final
ในตอนที่ประกาศสร้างคลาส ตัวอย่างเช่น หากสร้างคลาส TwoDShape
แล้วไม่ต้องการให้คลาสใดสืบทอดจากคลาสนี้ได้ สามารถเขียนตอน
ประกาศคลาสได้ดังนี้
คอนสตรัคเตอร์และการสืบทอด
         คลาสลูกที่มีการสืบทอดมาจากคลาสแม่สามารถมีคอนสตรัค
เตอร์ได้เช่นกัน จากตัวอย่างคลาสสามเหลี่ยมที่สร้างขึ้น อาจมีคอนสตรัค
เตอร์สาหรับกาหนดความยาวของด้านต่างๆได้ โดยสร้างเมธอดที่มีชื่อ
เดียวกับชื่อคลาสลูก
              รูปแบบ
                      super(parameter-list);
              โดยพารามิเตอร์ของ super คือค่าที่กาหนดให้กับคอนสตรัค
              เตอร์ของคลาสแม่
การออกแบบโปรแกรมเชิงวัตถุ
       ในการเขียนโปรแกรมเชิงวัตถุนั้นจะต้องเริ่มจากการจาแนก
ความแตกต่างของวัตถุที่ใช้ในโปรแกรมออกมา รวมทั้งพิจารณาถึง
พฤติกรรมของวัตถุนั้นด้วย จากนั้นพยายามรวบรวมออกมาเป็นคลาสให้
ได้ หากออกแบบคลาสได้แล้วควรเขียนไดอะแกรมของคลาส (Class
Diagram) ออกมา โดยทั่วไปแล้วมักจะใช้ภาษารูปแบบกราฟิกที่เรียกว่า
UML คานี้ย่อมาจาก Unlflied Modelling Language ซึ่งถือว่าเป็นภาษา
มาตรฐานในการลาลองระบบซอฟต์แวร์
การออกแบบโปรแกรมเชิงวัตถุ (ต่อ)
         สาหรับการเขียนไดอะแกรมคลาสจะประกอบด้วยส่วนต่างๆ สาม
ส่วนคือ ชื่อคลาส คุณลักษณะของคลาส และเมธอดของคลาส โดยใน
ไดอะแกรมจะระบุความสามารถในการเข้าถึงคุณลักษณะและตัวแปรต่างๆ
ด้วย ถ้าหากตัวแปรหรือเมธอดใดเป็นแบบ private จะใช้เครื่องหมาย (-) แต่
ถ้าหากตัวแปรหรือเมธอดใดเป็นแบบ public จะใช้เครื่องหมาย (+)
การออกแบบโปรแกรมเชิงวัตถุ (ต่อ)
ตัวอย่าง ถ้าหากออกแบบคลาสของระบบตัดเกรดนักศึกษา โดยให้คลาสนี้
มีตัวแปร score สาหรับเก็บคะแนน และมีเมธอด setScores() สาหรับ
กาหนดคะแนนนักศึกษา เมธอด getScore() สาหรับอ่านคะแนนนักศึกษา
และเมธอด getGrade() สาหรับอ่านเกรดนักศึกษา จะเขียนเป็น UML ของ
คลาสชื่อ GradedActivity และโปรแกรมได้ดังนี้
กรณีศึกษาการออกแบบโปรแกรมเชิงวัตถุ
          จากที่ศกษามาจะพบว่าการนาวิธีการสืบทอดคลาสมาใช้ ทาให้การ
                 ึ
เขียนโปรแกรมเชิงวัตถุมีประสิทธิภาพมากขึ้น การออกแบบโปรแกรมทา
ได้ง่ายขึ้น สาหรับหัวข้อนี้จะแสดงตัวอย่างการออกแบบโปรแกรมชิงวัตถุที่
มีการนาวิธีการสืบทอดคลาสมาใช้งาน
กรณีศึกษาการออกแบบโปรแกรมเชิงวัตถุ (ต่อ)
ตัวอย่างข้อมูลบุคคลในมหาวิทยาลัย
         ถ้าหากในมหาวิทยาลัยแห่งหนึ่งมีผู้คนอยู่ในระบบเป็นจานวน
มาก บางท่านเป็นเจ้าหน้าที่ เป็นพนักงานของมหาวิทยาลัย เป็นนักศึกษา
ในส่วนของนักศึกษายังแบ่งเป็นนักศึกษาระดับปริญญาตรี และนักศึกษา
ระดับบัณฑิตศึกษา ถ้าหากต้องการออกแบบโปรแกรมสาหรับเก็บข้อมูล
บุคคลต่างๆ ที่เกี่ยวข้องในมหาวิยาลัยแห่งนี้ เราอาจสร้างคลาสของบุคคล
ขึ้นมาเป็นคลาสแม่ สาหรับรายละเอียดของบุคคลประเภทอื่น ๆ ให้สร้าง
        คลาสสืบทอดต่อจากคลาสแม่นี้ สาหรับบุคคลที่ใช้เก็บข้อมูลทั่วไป
        ออกแบบได้ดังโปรแกรม
กรณีศึกษาการออกแบบโปรแกรมเชิงวัตถุ (ต่อ)
 โปรแกรม คลาส Person
กรณีศึกษาการออกแบบโปรแกรมเชิงวัตถุ (ต่อ)
      เมื่อสร้างคลาส Personสาหรับเก็บข้อมูลบุคคลทั่วไปแล้ว การออก
แบบคลาสสาหรับเก็บข้อมูลนักศึกษา หรือบุคลากรต่างๆ อาจใช้วิธีการสืบ
ทอดคลาสมาออกแบบคลาสได้ดังแผนภาพต่อไปนี้
สรุป
         ในเขียนโปรแกรมเชิงวัตถุนั้นจะมีการรวมคุณสมบัติและพฤติกรรม
ของสิ่งต่างๆ ที่เกิดขึ้นในโปรแกรมแล้วสร้างออกมาเป็นคลาส จากนั้นจะ
สร้างออบเจ็กต์ของคลาสนั้นๆ ออบเจ็กต์ต่างๆ จะสื่อสารกันผ่านทางเมธอด
คุณสมบัติหนึ่งที่สาคัญของการเขียนโปรแกรมเชิงวัตถุคือ การสืบทอด
(Inheritance) ซึ่งทาให้ผู้เขียนโปรแกรมสามารถนาคลาสที่เคยออกแบบไว้
นามาใช้ได้อก โดยสร้างคลาสใหม่เป็นคลาสลูกที่มีคุณสมบัติเพิ่มเติมขึ้นมา
             ี
โดยคลาสลูกนี้สามารถใช้คุณลักษณะและเมธอดต่างๆในคลาสแม่ได้ด้วย
บทที่ 12
การเขียนโปรแกรมโดยใช้ NetBeans
โปรแกรม NetBeans เป็นโปรแกรม IDE สาหรับเขียนโปรแกรม
ภาษาจาวาในลักษณะต่างๆ เป็นโปรแกรมที่เพียงแต่เติม และจัดระเบียบ
โค้ดโปรแกรม ก็สามารถสร้างโปรแกรมประยุกต์ได้ง่าย และเป็น
โปรแกรมที่หาใช้ได้ฟรี
          การเขียนโปรแกรมด้วย NetBeans นั้นจะไม่ต้องพิมพ์คาสั่งเพื่อ
 รันโปรแกรม เนื่องจากมีเมนูคาสั่งต่างๆ การเขียนโปรแกรมเมื่อพิมพ์
 คาสั่งลงไป โปรแกรมจะประมวลผลเพื่อพิจารณาว่าเป็นคาสั่งหรือเมธอด
 ใด จากนั้นจะแสดงคาสั่งที่น่าจะเป็นออกมาให้เลือกใช้ ซึ่งเหมาะกับผูที่
                                                                  ้
     เขียนโปรแกรมไม่คล่อง และผู้ที่ไม่ชอบจาเมธอดต่างๆ
เริ่มต้นเขียนโปรแกรมแรกด้วย NetBeans
        เริ่มต้นสร้างโปรเจ็กต์ใหม่โดยเลือกเมนู File > New Project
จากนั้นโปรแกรมจะแสดงหน้าต่าง New Project ขึ้นมา เราสามารถเลือกการ
สร้างโปรแกรมประยุกต์ได้หลายแบบ ในที่นี้จะสร้างโปรแกรมในลักษณะ
Desktop Application ด้วยจาวา ให้เลือกโปรเจ็กต์เป็น Java แล้วเลือก Java
Desktop Application
เริ่มต้นเขียนโปรแกรมแรกด้วย NetBeans(ต่อ)
        แล้วกด Next > ตังชือโปรเจ็กต์ > Finish เมื่อคลิก Finish โปรแกรม
                        ้ ่
จะแสดงหน้าต่างโปรเจ็กต์ที่สร้างขึ้นมาใหม่จะอยู่ในกรอบเส้นประพร้อม
ทั้งแสดงเฟรมสาหรับออกแบบ GUI ออกมา ด้านขวามือจะเป็นส่วนของ
Swing คอมโพเนนต์ ซึ่งสามารถลากมาวางบนเฟรมได้
เริ่มต้นเขียนโปรแกรมแรกด้วย NetBeans(ต่อ)
        สาหรับคอนโทรลต่างๆ มีให้เลือกมากมายสามารถนามาใช้งาน
ได้ โดยสามารถลากมาวางบนฟอร์มได้ทันที เมื่อวางคอมโพเนนต์ใดลง
ไป เราสามารถเปลี่ยนคุณสมบัติได้ในหน้าต่างคุณสมบัติ
                      ถ้าหากต้องการสร้างอีเวนต์ให้กับปุ่มได้โดย
              คลิกขวาที่ปุ่มแล้วเลือก Events แล้วเลือก Events ที่
              ต้องการ ในทีนี้จะเลือก Events ที่เกิดจากเมาส์โดยเลือก
                            ่
              เป็น Mouse > mouseClicked โปรแกรมจะสร้างหน้าต่าง
              ซอร์สโค้ดออกมา ให้พิมพ์คาสั่งในตาแหน่งต่อจากคาว่า
              TODO ในที่นี้จะพิมพ์ System.out.println(“Hello
              JAVA”); เพื่อแสดงข้อความออกทางคอนโซล เมื่อคลิก
              ไอคอนรันโปรแกรมจะแสดงหน้าต่างเอาต์พุต
การดีบักโปรแกรม
        การเขียนโปรแกรมคอมพิวเตอร์นั้นบางครั้งอาจต้องพิจารณาค่า
ของตัวแปรต่างๆ ที่เกิดขึ้นระหว่างการทางานของโปรแกรม เพื่อตรวจสอบ
ข้อผิดพลาดบางอย่างที่อาจเกิดขึ้นได้ เช่น การใช้ตัวแปรผิด การเขียน
นิพจน์ผิด ซึ่งข้อผิดพลาดเหล่านั้นเรียกว่าบั๊ก (bug) แต่เนื่องจากโปรแกรม
ทางานเร็วมาก บางครั้งอาจต้องให้โปรแกรมหยุดในตาแหน่งที่ต้องการเพื่อ
ตรวจสอบข้อผิดพลาดหรือเพื่อแก้บก โปรแกรม NetBeans สามารถ
                                    ั๊
           กาหนดจุดหยุดของโปรแกรมชั่วคราว หรือดูค่าของตัวแปร
          ระหว่างโปรแกรมทางานได้
สมาชิก
นางสาว ไพลิน      สืบเรือง         เลขที่ 22
นางสาวธนัชกัญ     พูลผล            เลขที่ 24
นางสาวพัชรวลัย    ดีประชา          เลขที่ 25
นางสาวศศิวิมล    สมบูรณ์ศิริ       เลขที่ 27
นางสาวจิรวัฒ     สลุงอยู่          เลขที่ 38
นางสาวรวิสรา      จารุเชษฐ์อัศนี   เลขที่ 39
นางสาวเมธาวี     เงินยวง           เลขที่ 40
                 ชั้น ม.6/2

Weitere ähnliche Inhalte

Was ist angesagt? (6)

Sa33
Sa33Sa33
Sa33
 
เมธอด Method
เมธอด Methodเมธอด Method
เมธอด Method
 
คู่มือเขียน Windows 8 apps ด้วย html5 และ java script สำหรับผู้เริ่มต้น (ตัวอ...
คู่มือเขียน Windows 8 apps ด้วย html5 และ java script สำหรับผู้เริ่มต้น (ตัวอ...คู่มือเขียน Windows 8 apps ด้วย html5 และ java script สำหรับผู้เริ่มต้น (ตัวอ...
คู่มือเขียน Windows 8 apps ด้วย html5 และ java script สำหรับผู้เริ่มต้น (ตัวอ...
 
Lesson1 programing concept
Lesson1 programing conceptLesson1 programing concept
Lesson1 programing concept
 
Java intro
Java introJava intro
Java intro
 
งานกลุ่มมคอม
งานกลุ่มมคอมงานกลุ่มมคอม
งานกลุ่มมคอม
 

Ähnlich wie Java 7&12 6 2

พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
Aeew Autaporn
 
แนะนำโปรแกรม Macromedia authorware 7.0
แนะนำโปรแกรม Macromedia authorware 7.0 แนะนำโปรแกรม Macromedia authorware 7.0
แนะนำโปรแกรม Macromedia authorware 7.0
pom_2555
 
โปรแกรม Macromedia authorware 7.0 พิมผกา ลลิตา
โปรแกรม Macromedia authorware 7.0 พิมผกา ลลิตาโปรแกรม Macromedia authorware 7.0 พิมผกา ลลิตา
โปรแกรม Macromedia authorware 7.0 พิมผกา ลลิตา
pom_2555
 
ใบงานที่7 การประยุกต์ใช้งาน
ใบงานที่7 การประยุกต์ใช้งานใบงานที่7 การประยุกต์ใช้งาน
ใบงานที่7 การประยุกต์ใช้งาน
Krittamook Sansumdang
 
การพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญาการพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญา
winewic199
 
Pbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นPbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้น
Dararat Worasut
 
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์ขอบข่ายและประเภทโครงงานคอมพิวเตอร์
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์
miiztake
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
Passawan' Koohar
 
ขอบข่ายและประเภทของโครงงาน
ขอบข่ายและประเภทของโครงงานขอบข่ายและประเภทของโครงงาน
ขอบข่ายและประเภทของโครงงาน
cartoon656
 
รายงาน คอม
รายงาน คอมรายงาน คอม
รายงาน คอม
NooLuck
 

Ähnlich wie Java 7&12 6 2 (20)

พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
แนะนำโปรแกรม Macromedia authorware 7.0
แนะนำโปรแกรม Macromedia authorware 7.0 แนะนำโปรแกรม Macromedia authorware 7.0
แนะนำโปรแกรม Macromedia authorware 7.0
 
โปรแกรม Macromedia authorware 7.0 พิมผกา ลลิตา
โปรแกรม Macromedia authorware 7.0 พิมผกา ลลิตาโปรแกรม Macromedia authorware 7.0 พิมผกา ลลิตา
โปรแกรม Macromedia authorware 7.0 พิมผกา ลลิตา
 
Start with maya
Start with mayaStart with maya
Start with maya
 
ใบงานที่7 การประยุกต์ใช้งาน
ใบงานที่7 การประยุกต์ใช้งานใบงานที่7 การประยุกต์ใช้งาน
ใบงานที่7 การประยุกต์ใช้งาน
 
การพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญาการพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญา
 
Know 1 1
Know 1 1Know 1 1
Know 1 1
 
Pbl2 docx
Pbl2 docxPbl2 docx
Pbl2 docx
 
Pbl2 docx
Pbl2 docxPbl2 docx
Pbl2 docx
 
Pbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นPbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้น
 
Java
JavaJava
Java
 
Six
SixSix
Six
 
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์ขอบข่ายและประเภทโครงงานคอมพิวเตอร์
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
 
3.3
3.33.3
3.3
 
ขอบข่ายและประเภทของโครงงาน
ขอบข่ายและประเภทของโครงงานขอบข่ายและประเภทของโครงงาน
ขอบข่ายและประเภทของโครงงาน
 
รายงาน คอม
รายงาน คอมรายงาน คอม
รายงาน คอม
 
Pbl2
Pbl2Pbl2
Pbl2
 
Six[1]
Six[1]Six[1]
Six[1]
 
ใบงาน 6
ใบงาน 6ใบงาน 6
ใบงาน 6
 

Mehr von Mook Sasivimon

งานย่อย2
งานย่อย2งานย่อย2
งานย่อย2
Mook Sasivimon
 
ฟังก์ชัน27
ฟังก์ชัน27ฟังก์ชัน27
ฟังก์ชัน27
Mook Sasivimon
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
Mook Sasivimon
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
Mook Sasivimon
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
Mook Sasivimon
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขรบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
Mook Sasivimon
 
บทที่ 5 ตัวแปรชุดและตัวแปรอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรอักขระบทที่ 5 ตัวแปรชุดและตัวแปรอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรอักขระ
Mook Sasivimon
 

Mehr von Mook Sasivimon (10)

งานย่อย2
งานย่อย2งานย่อย2
งานย่อย2
 
ฟังก์ชัน27
ฟังก์ชัน27ฟังก์ชัน27
ฟังก์ชัน27
 
It1
It1It1
It1
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขรบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
 
บทที่ 5 ตัวแปรชุดและตัวแปรอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรอักขระบทที่ 5 ตัวแปรชุดและตัวแปรอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรอักขระ
 
It1
It1It1
It1
 
It1
It1It1
It1
 

Java 7&12 6 2

  • 2. คีย์เวิร์ด static ในการออกแบบคลาสนั้นถ้าหากต้องการให้มีตัวแปรหนึ่ง เป็น ตัวแปรคลาสสาหรับเก็บคุณลักษณะประจาหรือพฤติกรรมต่างๆโดยที่ ตัวแปรนี้จะเก็บอยู่ในหน่วยความจาที่เดียวกัน ตัวแปรนี้เรียกว่า class variables หรือ 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. การออกแบบโปรแกรมเชิงวัตถุ ในการเขียนโปรแกรมเชิงวัตถุนั้นจะต้องเริ่มจากการจาแนก ความแตกต่างของวัตถุที่ใช้ในโปรแกรมออกมา รวมทั้งพิจารณาถึง พฤติกรรมของวัตถุนั้นด้วย จากนั้นพยายามรวบรวมออกมาเป็นคลาสให้ ได้ หากออกแบบคลาสได้แล้วควรเขียนไดอะแกรมของคลาส (Class Diagram) ออกมา โดยทั่วไปแล้วมักจะใช้ภาษารูปแบบกราฟิกที่เรียกว่า UML คานี้ย่อมาจาก Unlflied Modelling Language ซึ่งถือว่าเป็นภาษา มาตรฐานในการลาลองระบบซอฟต์แวร์
  • 11. การออกแบบโปรแกรมเชิงวัตถุ (ต่อ) สาหรับการเขียนไดอะแกรมคลาสจะประกอบด้วยส่วนต่างๆ สาม ส่วนคือ ชื่อคลาส คุณลักษณะของคลาส และเมธอดของคลาส โดยใน ไดอะแกรมจะระบุความสามารถในการเข้าถึงคุณลักษณะและตัวแปรต่างๆ ด้วย ถ้าหากตัวแปรหรือเมธอดใดเป็นแบบ private จะใช้เครื่องหมาย (-) แต่ ถ้าหากตัวแปรหรือเมธอดใดเป็นแบบ public จะใช้เครื่องหมาย (+)
  • 12. การออกแบบโปรแกรมเชิงวัตถุ (ต่อ) ตัวอย่าง ถ้าหากออกแบบคลาสของระบบตัดเกรดนักศึกษา โดยให้คลาสนี้ มีตัวแปร score สาหรับเก็บคะแนน และมีเมธอด setScores() สาหรับ กาหนดคะแนนนักศึกษา เมธอด getScore() สาหรับอ่านคะแนนนักศึกษา และเมธอด getGrade() สาหรับอ่านเกรดนักศึกษา จะเขียนเป็น UML ของ คลาสชื่อ GradedActivity และโปรแกรมได้ดังนี้
  • 13. กรณีศึกษาการออกแบบโปรแกรมเชิงวัตถุ จากที่ศกษามาจะพบว่าการนาวิธีการสืบทอดคลาสมาใช้ ทาให้การ ึ เขียนโปรแกรมเชิงวัตถุมีประสิทธิภาพมากขึ้น การออกแบบโปรแกรมทา ได้ง่ายขึ้น สาหรับหัวข้อนี้จะแสดงตัวอย่างการออกแบบโปรแกรมชิงวัตถุที่ มีการนาวิธีการสืบทอดคลาสมาใช้งาน
  • 14. กรณีศึกษาการออกแบบโปรแกรมเชิงวัตถุ (ต่อ) ตัวอย่างข้อมูลบุคคลในมหาวิทยาลัย ถ้าหากในมหาวิทยาลัยแห่งหนึ่งมีผู้คนอยู่ในระบบเป็นจานวน มาก บางท่านเป็นเจ้าหน้าที่ เป็นพนักงานของมหาวิทยาลัย เป็นนักศึกษา ในส่วนของนักศึกษายังแบ่งเป็นนักศึกษาระดับปริญญาตรี และนักศึกษา ระดับบัณฑิตศึกษา ถ้าหากต้องการออกแบบโปรแกรมสาหรับเก็บข้อมูล บุคคลต่างๆ ที่เกี่ยวข้องในมหาวิยาลัยแห่งนี้ เราอาจสร้างคลาสของบุคคล ขึ้นมาเป็นคลาสแม่ สาหรับรายละเอียดของบุคคลประเภทอื่น ๆ ให้สร้าง คลาสสืบทอดต่อจากคลาสแม่นี้ สาหรับบุคคลที่ใช้เก็บข้อมูลทั่วไป ออกแบบได้ดังโปรแกรม
  • 16. กรณีศึกษาการออกแบบโปรแกรมเชิงวัตถุ (ต่อ) เมื่อสร้างคลาส Personสาหรับเก็บข้อมูลบุคคลทั่วไปแล้ว การออก แบบคลาสสาหรับเก็บข้อมูลนักศึกษา หรือบุคลากรต่างๆ อาจใช้วิธีการสืบ ทอดคลาสมาออกแบบคลาสได้ดังแผนภาพต่อไปนี้
  • 17. สรุป ในเขียนโปรแกรมเชิงวัตถุนั้นจะมีการรวมคุณสมบัติและพฤติกรรม ของสิ่งต่างๆ ที่เกิดขึ้นในโปรแกรมแล้วสร้างออกมาเป็นคลาส จากนั้นจะ สร้างออบเจ็กต์ของคลาสนั้นๆ ออบเจ็กต์ต่างๆ จะสื่อสารกันผ่านทางเมธอด คุณสมบัติหนึ่งที่สาคัญของการเขียนโปรแกรมเชิงวัตถุคือ การสืบทอด (Inheritance) ซึ่งทาให้ผู้เขียนโปรแกรมสามารถนาคลาสที่เคยออกแบบไว้ นามาใช้ได้อก โดยสร้างคลาสใหม่เป็นคลาสลูกที่มีคุณสมบัติเพิ่มเติมขึ้นมา ี โดยคลาสลูกนี้สามารถใช้คุณลักษณะและเมธอดต่างๆในคลาสแม่ได้ด้วย
  • 19. โปรแกรม NetBeans เป็นโปรแกรม IDE สาหรับเขียนโปรแกรม ภาษาจาวาในลักษณะต่างๆ เป็นโปรแกรมที่เพียงแต่เติม และจัดระเบียบ โค้ดโปรแกรม ก็สามารถสร้างโปรแกรมประยุกต์ได้ง่าย และเป็น โปรแกรมที่หาใช้ได้ฟรี การเขียนโปรแกรมด้วย NetBeans นั้นจะไม่ต้องพิมพ์คาสั่งเพื่อ รันโปรแกรม เนื่องจากมีเมนูคาสั่งต่างๆ การเขียนโปรแกรมเมื่อพิมพ์ คาสั่งลงไป โปรแกรมจะประมวลผลเพื่อพิจารณาว่าเป็นคาสั่งหรือเมธอด ใด จากนั้นจะแสดงคาสั่งที่น่าจะเป็นออกมาให้เลือกใช้ ซึ่งเหมาะกับผูที่ ้ เขียนโปรแกรมไม่คล่อง และผู้ที่ไม่ชอบจาเมธอดต่างๆ
  • 20. เริ่มต้นเขียนโปรแกรมแรกด้วย NetBeans เริ่มต้นสร้างโปรเจ็กต์ใหม่โดยเลือกเมนู File > New Project จากนั้นโปรแกรมจะแสดงหน้าต่าง New Project ขึ้นมา เราสามารถเลือกการ สร้างโปรแกรมประยุกต์ได้หลายแบบ ในที่นี้จะสร้างโปรแกรมในลักษณะ Desktop Application ด้วยจาวา ให้เลือกโปรเจ็กต์เป็น Java แล้วเลือก Java Desktop Application
  • 21. เริ่มต้นเขียนโปรแกรมแรกด้วย NetBeans(ต่อ) แล้วกด Next > ตังชือโปรเจ็กต์ > Finish เมื่อคลิก Finish โปรแกรม ้ ่ จะแสดงหน้าต่างโปรเจ็กต์ที่สร้างขึ้นมาใหม่จะอยู่ในกรอบเส้นประพร้อม ทั้งแสดงเฟรมสาหรับออกแบบ GUI ออกมา ด้านขวามือจะเป็นส่วนของ Swing คอมโพเนนต์ ซึ่งสามารถลากมาวางบนเฟรมได้
  • 22. เริ่มต้นเขียนโปรแกรมแรกด้วย NetBeans(ต่อ) สาหรับคอนโทรลต่างๆ มีให้เลือกมากมายสามารถนามาใช้งาน ได้ โดยสามารถลากมาวางบนฟอร์มได้ทันที เมื่อวางคอมโพเนนต์ใดลง ไป เราสามารถเปลี่ยนคุณสมบัติได้ในหน้าต่างคุณสมบัติ ถ้าหากต้องการสร้างอีเวนต์ให้กับปุ่มได้โดย คลิกขวาที่ปุ่มแล้วเลือก Events แล้วเลือก Events ที่ ต้องการ ในทีนี้จะเลือก Events ที่เกิดจากเมาส์โดยเลือก ่ เป็น Mouse > mouseClicked โปรแกรมจะสร้างหน้าต่าง ซอร์สโค้ดออกมา ให้พิมพ์คาสั่งในตาแหน่งต่อจากคาว่า TODO ในที่นี้จะพิมพ์ System.out.println(“Hello JAVA”); เพื่อแสดงข้อความออกทางคอนโซล เมื่อคลิก ไอคอนรันโปรแกรมจะแสดงหน้าต่างเอาต์พุต
  • 23.
  • 24. การดีบักโปรแกรม การเขียนโปรแกรมคอมพิวเตอร์นั้นบางครั้งอาจต้องพิจารณาค่า ของตัวแปรต่างๆ ที่เกิดขึ้นระหว่างการทางานของโปรแกรม เพื่อตรวจสอบ ข้อผิดพลาดบางอย่างที่อาจเกิดขึ้นได้ เช่น การใช้ตัวแปรผิด การเขียน นิพจน์ผิด ซึ่งข้อผิดพลาดเหล่านั้นเรียกว่าบั๊ก (bug) แต่เนื่องจากโปรแกรม ทางานเร็วมาก บางครั้งอาจต้องให้โปรแกรมหยุดในตาแหน่งที่ต้องการเพื่อ ตรวจสอบข้อผิดพลาดหรือเพื่อแก้บก โปรแกรม NetBeans สามารถ ั๊ กาหนดจุดหยุดของโปรแกรมชั่วคราว หรือดูค่าของตัวแปร ระหว่างโปรแกรมทางานได้
  • 25. สมาชิก นางสาว ไพลิน สืบเรือง เลขที่ 22 นางสาวธนัชกัญ พูลผล เลขที่ 24 นางสาวพัชรวลัย ดีประชา เลขที่ 25 นางสาวศศิวิมล สมบูรณ์ศิริ เลขที่ 27 นางสาวจิรวัฒ สลุงอยู่ เลขที่ 38 นางสาวรวิสรา จารุเชษฐ์อัศนี เลขที่ 39 นางสาวเมธาวี เงินยวง เลขที่ 40 ชั้น ม.6/2