SlideShare a Scribd company logo
วิธีการเชิงวัตถุและ
การออกแบบคลาส
คีย์เวิร์ด static
ในการออกแบบคลาสนั้นถ้าหากต้องการให้มีตัวแปรหนึ่ง เป็นตัวแปรคลาส
สาหรับเก็บคุณลักษณะประจาหรือพฤติกรรมต่างๆโดยที่ตัวแปรนี้จะเก็บอยู่ใน
หน่วยความจาที่เดียวกัน ตัวแปรนี้เรียกว่า class variables หรือ static
variables โดยการสร้างตัวแปรนี้จะใช้คาว่า static นาหน้าทุกออบเจ็กต์ที่
สร้างขึ้นจะใช้ตัวแปรนี้เป็นตัวเดียวกัน
คุณลักษณะของวิธีการเชิงวัตถุ(class)
วิธีการเชิงวัตถุจะสมบรูณ์ได้จะต้องประกอบด้วยคุณสมบัติ 3 ประการ ได้แก่
การห่อหุ้ม การสืบทอด มีได้หลายรูปแบบ
1. การห่อหุ้ม (Encapeulation) ลักษณะที่สาคัญของการเขียนโปรแกรมเชิง
วัตถุก็คือ ข้อมูลหรือคุณลักษณะบางอย่างที่สร้างขึ้นในคลาสสามารถปกป้องหรือ
ถูกห่อหุ้มอยู่ภายในไม่ให้ออบเจ็กต์สามารถเข้าใช้งานหรือเข้าไปแก้ไขข้อมูล
ได้เช่น ถ้าสร้างคลาสสาหรับวงกลมชื่อ Circle ภายในคลาสมีเมธอดสาหรับ
กาหนดค่ารัศมี เมธอดสาหรับหาเส้นรอบวงกลม และมีข้อมูลที่เป็น รัศมีวงกลม
สาหรับให้เป็นค่าคงที่ในการคานวณหาเส้นรอบวงกลม การสร้างคลาสลักษณะนี้
ค่ารัศมีจะใช้ภายในคลาสเท่านั้น ไม่ควรให้ออบเจ็กต์แก้ไขได้ เนื่องจากอาจทาให้
การคานวณหาค่าเส้นรอบวงผิดไปหมดคุณลักษณะแบบนี้เรียกว่า การห่อหุ้ม
การเข้าถึงข้อมูลต่างๆ ภายในออบเจ็กต์ควรใช้วิธีการเข้าถึงผ่านทางเมธอด การ
กาหนดการเข้าถึงได้จากภายนากตรงนี้จากาหนดในส่วน AccessSpecifier ที่ใช้
ตอนนิยามคลาส ถ้าหากกาหมดเป็น privateหมายความว่าส่วนนี้ถูกห่อหุ้มอยู่
แต่ถ้าหากกาหมดเป็น public หมายความว่าส่วนนี้สามารถเรียกใช้จากภายนอก
ได้จากการเขียนโปรแกรมส่วนใหญ่ที่ผ่านจะเห็นว่าส่วนที่เป็นข้อมูลจะกาหนดให้
เป็น privateสาหรับส่วนที่เป็นเมธอดจะกาหนดให้เป็น public
ในการเขียนโปรแกรมเชิงออบเจ็กต์นั้นตัวแปรและเมธอดสามารถกาหนดให้
เป็นได้ทั้งแบบprivate หรือแบบ public ขึ้นกับลักษณะของการให้งานและ
ลักษณะของออบเจ็กต์ที่สร้างขึ้น ดังการใช้งานในรูปต่อไปนี้
2. การสืบทอด (Inheritance) อินเฮอริแทนซ์ (Inheritance)
หรือการสืบทอดเป็นการนาออบเจ็กต์มาสร้างลาดับความสัมพันธ์เป็นลาดับ
ชั้น สามารถนาคลาสที่มีอยู่แล้ว หรือนาโปรแกรมที่ได้เขียนไว้แล้วนากลับมาใช้
ใหม่ได้อีก สามารถสร้างคลาสใหม่ที่สืบทอดมาจากคลาสที่มีอยู่แล้วได้ เป็นการ
ถ่ายทอดคุณสมบัติของคลาสหนึ่งไปยังอีกคลาสหนึ่ง ซึ่งทาให้คลาสใหม่นี้สามารถ
นาคุณลักษณะและเมธอดของคลาสเดิมมาใช้ได้ คลาสที่เป็นต้นแบบจะ
เรียกว่า superclass หรือ base class หรือเรียกสั้นๆว่า คลาสแม่ ส่วนคลาสที่
สืบทอดจะเรียกว่า subclass หรือ child class หรือเรียกว่า คลาสลูก
การสืบทอด (Inheritance)
เป็นการสืบทอดเมธอดและคุณลักษณะจากคลาสแม่มาสู่คลาสลูก โดยคลาสลูกที่สร้าง
ขึ้นจะมีลักษณะคล้ายๆกับคลาสแม่ แต่จะมีคุณสมบัติพิเศษเป็นการเฉพาะมากกว่า ตัวอย่าง
เช่น ถ้าหากเรามีคลาสของรูปร่างสองมิติเป็นคลาสแม่ เราอาจสร้างคลาสลูกเป็นคลาสของ
สามเหลี่ยม คลาสของสี่เหลี่ยม และคลาสของวงกลมที่สืบทอดมาจากคลาสของรูปร่างสอง
มิติได้ในการเขียนโปรแกรมด้วยภาษาจาวาการสร้างของคลาสจะใช้คา ว่า extends ใน
การบอกว่าคลาสที่สร้างขึ้นมีการสืบทอดมาจากคลาสใด
การเข้าถึงสมาชิกในคลาส
ในการเขียนโปรแกรมแบบออบเจ็กต์นั้น โดยทั่วไปแล้วคุณลักษณะของคลาสมักจะไม่
ยอมให้ออบเจ็กต์ภายนอกเข้าถึงได้โดยตรง โดยจะใช้คาว่า private เขียนกากับไว้ถ้า
หากคลาส TwoDShape ประกาศตัวแปรคุณลักษณะ
เป็น private คลาส Triangle ก็จะไม่สามารถใช้ตัวแปรนั้นได้ด้วย แต่ถ้าหากเป็นตัว
แปรที่เข้าถึงได้เฉพาะสมาชิกของคลาส หรือสมาชิกในคลาสลูกเท่านั้นจะใช้คา
ว่า protected
การห้ามไม่ให้มีการสืบทอด
ในการออกแบบคลาสนั้น หากไม่ต้องการให้มีคลาสใดที่สามารถสืบทอดจาก
คลาสที่สร้างขึ้นได้ก็ทาได้เช่นกัน โดยใช้คาว่า final ในตอนที่ประกาศสร้างคลาส
ตัวอย่างเช่น หากสร้างคลาส TwoDShape แล้วไม่ต้องการให้คลาสใดสืบทอดจาก
คลาสนี้ได้สามารถเขียนตอนประกาศคลาสได้ดังนี้
คอนสตรัคเตอร์และการสืบทอด
คลาสลูกที่มีการสืบทอดมาจากคลาสแม่สามารถมีคอนสตรัคเตอร์ได้เช่นกัน จาก
ตัวอย่างคลาสสามเหลี่ยมที่สร้างขึ้น อาจมีคอนสตรัคเตอร์สาหรับกาหนดความยาวของ
ด้านต่างๆได้โดยสร้างเมธอดที่มีชื่อเดียวกับชื่อคลาสลูก
รูปแบบ >> super(parameter-list); โดยพารามิเตอร์ของ super คือค่าที่กาหนด
ให้กับคอนสตรัคเตอร์ของคลาสแม่
การออกแบบโปรแกรมเชิงวัตถุ
ในการเขียนโปรแกรมเชิงวัตถุนั้นจะต้องเริ่มจากการจาแนกความแตกต่างของ
วัตถุที่ใช้ในโปรแกรมออกมา รวมทั้งพิจารณาถึงพฤติกรรมของวัตถุนั้นด้วย
จากนั้นพยายามรวบรวมออกมาเป็นคลาสให้ได้ หากออกแบบคลาสได้แล้วควร
เขียนไดอะแกรมของคลาส (Class Diagram) ออกมา โดยทั่วไปแล้วมักจะใช้
ภาษารูปแบบกราฟิกที่เรียกว่า UML คานี้ย่อ
จาก Unlflied Modelling Language ซึ่งถือว่าเป็นภาษามาตรฐานในการ
ลาลองระบบซอฟต์แวร์
สาหรับการเขียนไดอะแกรมคลาสจะประกอบด้วยส่วนต่างๆ สามส่วนคือ
ชื่อคลาส คุณลักษณะของคลาส และเมธอดของคลาส โดยในไดอะแกรมจะระบุ
ความสามารถในการเข้าถึงคุณลักษณะและตัวแปรต่างๆด้วย ถ้าหากตัวแปรหรือ
เมธอดใดเป็นแบบ private จะใช้เครื่องหมาย (-) แต่ถ้าหากตัวแปรหรือเมธอดใด
เป็นแบบ public จะใช้เครื่องหมาย (+)
ตัวอย่าง ถ้าหากออกแบบคลาสของระบบตัดเกรดนักศึกษา โดยให้คลาสนี้มีตัว
แปร score สาหรับเก็บคะแนน และมีเมธอด setScores() สาหรับกาหนด
คะแนนนักศึกษา เมธอดgetScore() สาหรับอ่านคะแนนนักศึกษา และเมธ
อด getGrade() สาหรับอ่านเกรดนักศึกษา จะเขียนเป็น UML ของคลาสชื่อ
GradedActivity และโปรแกรมได้ดังนี้
กรณีศึกษาการออกแบบโปรแกรมเชิงวัตถุ
จากที่ศึกษามาจะพบว่าการนาวิธีการสืบทอดคลาสมาใช้ ทาให้การเขียน
โปรแกรมเชิงวัตถุมีประสิทธิภาพมากขึ้น การออกแบบโปรแกรมทาได้ง่ายขึ้น
สาหรับหัวข้อนี้จะแสดงตัวอย่างการออกแบบโปรแกรมชิงวัตถุที่มีการนาวิธีการ
สืบทอดคลาสมาใช้งาน
ตัวอย่างข้อมูลบุคคลในมหาวิทยาลัย
ถ้าหากในมหาวิทยาลัยแห่งหนึ่งมีผู้คนอยู่ในระบบเป็นจานวนมาก บางท่าน
เป็นเจ้าหน้าที่ เป็นพนักงานของมหาวิทยาลัย เป็นนักศึกษา ในส่วนของนักศึกษายัง
แบ่งเป็นนักศึกษาระดับปริญญาตรี และนักศึกษาระดับบัณฑิตศึกษา ถ้าหาก
ต้องการออกแบบโปรแกรมสาหรับเก็บข้อมูลบุคคลต่างๆ ที่เกี่ยวข้องในมหาวิยาลัย
แห่งนี้ เราอาจสร้างคลาสของบุคคลขึ้นมาเป็นคลาสแม่ สาหรับรายละเอียดของ
บุคคลประเภทอื่น ๆ ให้สร้างคลาสสืบทอดต่อจากคลาสแม่นี้ สาหรับบุคคลที่ใช้
เก็บข้อมูลทั่วไปออกแบบได้ดังโปรแกรม
โปรแกรม คลาสPerson
เมื่อสร้างคลาส Personสาหรับเก็บข้อมูลบุคคลทั่วไปแล้ว การออก แบบคลาส
สาหรับเก็บข้อมูลนักศึกษา หรือบุคลากรต่างๆ อาจใช้วิธีการสืบทอดคลาสมาออกแบบคลาส
ได้ดังแผนภาพต่อไปนี้
สรุป
ในเขียนโปรแกรมเชิงวัตถุนั้นจะมีการรวมคุณสมบัติและพฤติกรรมของสิ่ง
ต่างๆ ที่เกิดขึ้นในโปรแกรมแล้วสร้างออกมาเป็นคลาส จากนั้นจะสร้างออบเจ็กต์
ของคลาสนั้นๆ ออบเจ็กต์ต่างๆ จะสื่อสารกันผ่านทางเมธอด คุณสมบัติหนึ่งที่
สาคัญของการเขียนโปรแกรมเชิงวัตถุคือ การสืบทอด(Inheritance) ซึ่งทาให้
ผู้เขียนโปรแกรมสามารถนาคลาสที่เคยออกแบบไว้นามาใช้ได้อีก โดยสร้างคลาส
ใหม่เป็นคลาสลูกที่มีคุณสมบัติเพิ่มเติมขึ้นมา โดยคลาสลูกนี้สามารถใช้
คุณลักษณะและเมธอดต่างๆในคลาสแม่ได้ด้วย
จัดทาโดย
1. นาย กิตติ สันติภราภพ เลขที่ 2
2. นาย จักรกฤษณ์ ยันต์มโนมัย เลขที่ 12
3. นาย ดลสันติ์ กรีชวด เลขที่ 18
4. นางสาว วัชราภรณ์ กาญจนกิจวิศาล เลขที่ 25
5. นางสาว พรทิพย์ โพธิ์เงิน เลขที่ 30
6. นางสาว สิริกร วิจิตรศิริโชติ เลขที่ 31
7. นางสาว ณัฐธิดา ชะลอทรัพย์ เลขที่ 37
ชั้นมัธยมศึกษาปีที่ 6/3

More Related Content

Viewers also liked

Sch 47 15.11.13 anti-bullying titanium
Sch 47  15.11.13 anti-bullying titaniumSch 47  15.11.13 anti-bullying titanium
Sch 47 15.11.13 anti-bullying titanium
Andrea Louise
 
TCU GBU 5 Truths
TCU GBU 5 TruthsTCU GBU 5 Truths
TCU GBU 5 Truths
Darren Drewitz
 
Synthesis of low spin iron complex as potential redox mediator for DSCs
Synthesis of low spin iron complex as potential redox mediator for DSCsSynthesis of low spin iron complex as potential redox mediator for DSCs
Synthesis of low spin iron complex as potential redox mediator for DSCs
danielmorales91
 
ใบงานสำรวจตนเอง M6/5 40
ใบงานสำรวจตนเอง M6/5 40ใบงานสำรวจตนเอง M6/5 40
ใบงานสำรวจตนเอง M6/5 40
Walk4Fun
 
Logo competition-show
Logo competition-showLogo competition-show
Logo competition-show
Quỳnh Đức
 
Mi empresa personal
Mi empresa personalMi empresa personal
Mi empresa personal
Juan Carlos Herrera Restrepo
 
EgeJeo dogaltas sunum
EgeJeo dogaltas sunumEgeJeo dogaltas sunum
EgeJeo dogaltas sunum
OzlemYurdakul
 
Proyecto vida sana alexandra v
Proyecto vida sana alexandra vProyecto vida sana alexandra v
Proyecto vida sana alexandra v
alexandramartina1
 
Luca Gregoratti (May 27th 2014)
Luca Gregoratti (May 27th 2014)Luca Gregoratti (May 27th 2014)
Luca Gregoratti (May 27th 2014)
Roadshow2014
 
Nonprofits and Technology: Fundraising in the Digital Age
Nonprofits and Technology: Fundraising in the Digital AgeNonprofits and Technology: Fundraising in the Digital Age
Nonprofits and Technology: Fundraising in the Digital Age
Ross Kasper
 
Peluang usaha Untuk Anda
Peluang usaha Untuk AndaPeluang usaha Untuk Anda
Peluang usaha Untuk Anda
Qi Qi
 
Intranet-palvelut nyt ja tulevaisuudessa
Intranet-palvelut nyt ja tulevaisuudessaIntranet-palvelut nyt ja tulevaisuudessa
Intranet-palvelut nyt ja tulevaisuudessa
North Patrol
 
Fiksu verkkotekeminen Suomessa 2014
Fiksu verkkotekeminen Suomessa 2014Fiksu verkkotekeminen Suomessa 2014
Fiksu verkkotekeminen Suomessa 2014
North Patrol
 
Fichas/Segundo periodo
Fichas/Segundo periodo Fichas/Segundo periodo
Fichas/Segundo periodo
Thefiz Pabon
 
Global Switch Sydney West data centre Technical Specification
Global Switch Sydney West data centre Technical SpecificationGlobal Switch Sydney West data centre Technical Specification
Global Switch Sydney West data centre Technical Specification
Global Switch
 

Viewers also liked (15)

Sch 47 15.11.13 anti-bullying titanium
Sch 47  15.11.13 anti-bullying titaniumSch 47  15.11.13 anti-bullying titanium
Sch 47 15.11.13 anti-bullying titanium
 
TCU GBU 5 Truths
TCU GBU 5 TruthsTCU GBU 5 Truths
TCU GBU 5 Truths
 
Synthesis of low spin iron complex as potential redox mediator for DSCs
Synthesis of low spin iron complex as potential redox mediator for DSCsSynthesis of low spin iron complex as potential redox mediator for DSCs
Synthesis of low spin iron complex as potential redox mediator for DSCs
 
ใบงานสำรวจตนเอง M6/5 40
ใบงานสำรวจตนเอง M6/5 40ใบงานสำรวจตนเอง M6/5 40
ใบงานสำรวจตนเอง M6/5 40
 
Logo competition-show
Logo competition-showLogo competition-show
Logo competition-show
 
Mi empresa personal
Mi empresa personalMi empresa personal
Mi empresa personal
 
EgeJeo dogaltas sunum
EgeJeo dogaltas sunumEgeJeo dogaltas sunum
EgeJeo dogaltas sunum
 
Proyecto vida sana alexandra v
Proyecto vida sana alexandra vProyecto vida sana alexandra v
Proyecto vida sana alexandra v
 
Luca Gregoratti (May 27th 2014)
Luca Gregoratti (May 27th 2014)Luca Gregoratti (May 27th 2014)
Luca Gregoratti (May 27th 2014)
 
Nonprofits and Technology: Fundraising in the Digital Age
Nonprofits and Technology: Fundraising in the Digital AgeNonprofits and Technology: Fundraising in the Digital Age
Nonprofits and Technology: Fundraising in the Digital Age
 
Peluang usaha Untuk Anda
Peluang usaha Untuk AndaPeluang usaha Untuk Anda
Peluang usaha Untuk Anda
 
Intranet-palvelut nyt ja tulevaisuudessa
Intranet-palvelut nyt ja tulevaisuudessaIntranet-palvelut nyt ja tulevaisuudessa
Intranet-palvelut nyt ja tulevaisuudessa
 
Fiksu verkkotekeminen Suomessa 2014
Fiksu verkkotekeminen Suomessa 2014Fiksu verkkotekeminen Suomessa 2014
Fiksu verkkotekeminen Suomessa 2014
 
Fichas/Segundo periodo
Fichas/Segundo periodo Fichas/Segundo periodo
Fichas/Segundo periodo
 
Global Switch Sydney West data centre Technical Specification
Global Switch Sydney West data centre Technical SpecificationGlobal Switch Sydney West data centre Technical Specification
Global Switch Sydney West data centre Technical Specification
 

วิธีการเชิงวัตถุและการออกแคลาส