ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
บทที่ 8 การเขียนโปรแกรมเชิงวัตถุ
CHAPTER 8 Object Oriented Programming BC320:Introduction to Computer Programming
2
BC320:Introduction to Computer Programming
เนื้อหา บทนำเกี่ยวกับการเขียนโปรแกรมเชิงวัตถุ ความหมายของวัตถุ (Object) คุณสมบัติของวัตถุ (Characteristics of Object) การหุ้มห่อ (Encapsulation/Protection) การสื่อสารระหว่างวัตถุ (Message Passing) ความหมายของคลาส (Class) ความแตกต่างระหว่างคลาส (Class)และวัตถุ (Object) การสืบทอดองค์ประกอบของวัตถุ (Inheritance) ลำดับชั้นของวัตถุ (Heirarchy) BC320:Introduction to Computer Programming
3
BC320:Introduction to Computer Programming
วัตถุประสงค์ เพื่อศึกษาแนวความคิดในการเขียนโปรแกรมเชิงวัตถุ เพื่อศึกษาความหมายและองค์ประกอบของวัตถุ เพื่อศึกษาความหมายของคลาส เพื่อศึกษาแนวคิดการออกแบบโปรแกรมเชิงวัตถุ เพื่อศึกษาคุณลักษณะของวัตถุ BC320:Introduction to Computer Programming
4
8.1 แนวคิดในการเขียนโปรแกรมเชิงวัตถุ
แนวความคิดในการเขียนโปรแกรมมี 2 แนวคิด แนวความคิดการเขียนโปรแกรมแบบโครงสร้าง (Structured Programming) แนวความคิดเชิงวัตถุ (Object Oriented Programming) BC320:Introduction to Computer Programming
5
8.1 แนวคิดในการเขียนโปรแกรมเชิงวัตถุ (ต่อ)
แนวคิดการเขียนโปรแกรมแบบโครงสร้าง เป็นแนวความคิดในการเขียนโปรแกรมที่มีการนำข้อมูลที่เหมือนกัน มารวมเข้าไว้ด้วยกัน เป็นชุดเดียวกัน เพื่อง่ายต่อการอ้างถึง เช่น struct person{ char *name; char *address; int age; }; BC320:Introduction to Computer Programming
6
8.1 แนวคิดในการเขียนโปรแกรมเชิงวัตถุ (ต่อ)
จากสไลด์ที่ผ่านมาเป็นการประกาศให้ person เป็นชื่อของกลุ่มข้อมูลที่ประกอบด้วยตัวแปร 3 ตัวคือ name, address และ age การนำเอากลุ่มข้อมูลไปใช้งาน สามารถประกาศตัวแปรเป็นแบบ person คือ struct person man1; ซึ่งหมายความว่าให้ตัวแปร man1 เป็นตัวแปรชนิด person เพราะฉะนั้นตัวแปร man1 จะมีโครงสร้างเช่นเดียวกันกับ person คือ ประกอบด้วยตัวแปร 3 ตัวนั่นคือ name, address และ age นั่นเอง BC320:Introduction to Computer Programming
7
8.1 แนวคิดในการเขียนโปรแกรมเชิงวัตถุ (ต่อ)
man1.name = “Supachai”; man1.address = “Bangkok”; man1.age = “18” ให้สังเกตุว่า การเขียนโปรแกรมแบบโครงสร้างจะเป็นการรวมตัวแปรไว้ในกลุ่มเดียวกัน BC320:Introduction to Computer Programming
8
BC320:Introduction to Computer Programming
Slide เพิ่ม Name Age Address Supachai Bangkok 18 man1 ถ้าสั่งให้รับค่าข้อมูลของนักศึกษา ตามคำสั่งนี้ ค่าที่เก็บจะเป็นอย่างไร? Read man1.Name Read man1.Address Read man1.Age Name Address Age ? ? ? man1 BC320:Introduction to Computer Programming
9
8.1 แนวคิดในการเขียนโปรแกรมเชิงวัตถุ (ต่อ)
แนวคิดการเขียนโปรแกรมเชิงวัตถุ เป็นการเขียนโปรแกรมเพื่อให้เป็นไปตามหลักการเชิงวัตถุ ซึ่งมีลักษณะเช่นเดียวกับการเขียนโปรแกรมแบบโครงสร้าง แต่จะแตกต่างกันตรงที่ เป็นการนำเอาข้อมูล, ตัวแปร หรือฟังก์ชัน ของวัตถุมา รวมอยู่ในกลุ่มเดียวกัน BC320:Introduction to Computer Programming
10
BC320:Introduction to Computer Programming
8.2 ความหมายของวัตถุ วัตถุคือสิ่งใดๆ ซึ่งมีคุณลักษณะ (State) บ่งบอกถึงความเป็นตัวของมันเอง และสามารถแสดงพฤติกรรม (Behavior) ของตัวมันเองออกมาได้ ยกตัวอย่างเช่น ถ้าพิจารณา คีย์บอร์ด เป็นวัตถุ (Object) คุณลักษณะ: มีปุ่มกด, มีสายเชื่อมต่อ พฤติกรรม: ใช้ป้อนข้อมูลเข้าคอมพิวเตอร์ BC320:Introduction to Computer Programming
11
BC320:Introduction to Computer Programming
8.3 คุณสมบัติของวัตถุ เมื่อพิจารณาวัตถุใด ๆ ก็ตาม จะประกอบด้วย 2 ส่วนสำคัญ คือ คุณลักษณะ และพฤติกรรม คุณลักษณะ คือสิ่งที่สามารถบ่งบอกถึงความเป็นวัตถุ เช่น สี ความสูง น้ำหนัก พฤติกรรม คือ อาการที่วัตถุใดๆ แสดงออกมา เช่น การเคลื่อนที่ การหยุด BC320:Introduction to Computer Programming
12
BC320:Introduction to Computer Programming
8.3 คุณสมบัติของวัตถุ ลักษณะ: พฤติกรรม: จอภาพ,สาย,ปุ่มกด แสดงผลลัพธ์จากคอมพิวเตอร์ ลักษณะ: พฤติกรรม: ปุ่มปรับเสียง,จานเสียง,หน้ากาก แสดงเสียงลักษณะต่าง ๆ ลักษณะ: พฤติกรรม: ปุ่มกด,ถาดรับแผ่น CD,สปริง ฯลฯ อ่านข้อมูลจากแผ่น CD BC320:Introduction to Computer Programming
13
ดังนั้น Software Object
Slide เพิ่ม ดังนั้น Software Object ลักษณะ: พฤติกรรม: ตัวแปรต่าง ๆ (Variables) มี Method สำหรับการทำงาน ดังนั้น Object คือ ซอฟต์แวร์ที่รวมเอา Variables และ Method ที่เกี่ยวข้องไว้ด้วยกัน BC320:Introduction to Computer Programming
14
BC320:Introduction to Computer Programming
Slide เพิ่ม แล้ว Method คืออะไร ? สมัยก่อนเขียนโปรแกรมที่ต้องการเรียกใช้คำสั่งต่างๆ ซ้ำไปซ้ำมาหลาย ๆ รอบ ก็จะใช้ Function เพื่อทำให้โปรแกรมลดความซ้ำซ้อนและทำงานเร็วขึ้น ดังนั้น Method ในภาษาจาวา ก็คือ Function ในภาษาซี เขียนครั้งเดียวก็เรียกใช้ได้หลาย ๆ รอบเลย BC320:Introduction to Computer Programming
15
8.4 การหุ้มห่อ (Encapsulation)
การหุ้มห่อ คือ การหุ้มห่อข้อมูล ที่เป็นทั้งคุณลักษณะ และพฤติกรรม ของวัตถุเข้าไว้ด้วยกัน ซึ่งก็จะเหมือนการซ่อนกระบวนการทำงานของข้อมูลไว้ และจะทำให้วัตถุมีความพิเศษอื่นๆ ตามมาด้วย BC320:Introduction to Computer Programming
16
BC320:Introduction to Computer Programming
Slide เพิ่ม แสดง Encapsulation ของ Object Variables Method Variables อยู่ตรงกลาง Object แล้วมี Method ห่อหุ้มอยู่รอบนอก ป้องกันไม่ให้ฟังก์ชันอื่นที่ไม่เกี่ยวข้องเข้ามากำหนดตัวแปรต่าง ๆเพิ่มได้ BC320:Introduction to Computer Programming
17
8.4 การหุ้มห่อ (Encapsulation) (ต่อ)
8.4.1 ความเป็นโมดูล (Modularity) หมายถึงความสามารถในการนำวัตถุไปใช้ที่ใด ๆ ก็ได้ โดยไม่ต้องมีการปรับปรุงสภาพแวดล้อมของการใช้งานก่อน เนื่องจาก Source Code ของแต่ละ Object อิสระกัน เมื่อต้องทำการปรับปรุง ก็สามารถทำได้โดยไม่มีผลกระทบกับการทำงานของระบบซอฟต์แวร์โดยรวม นอกจากนี้ความเป็น Object ทำให้เป็นเสมือนชิ้นส่วนที่นำไปประกอบเข้ากับซอฟต์แวร์อื่น ๆ ที่ออกแบบมาให้รองรับกันและกันได้ BC320:Introduction to Computer Programming
18
8.4 การหุ้มห่อ (Encapsulation) (ต่อ)
8.4.2 การซ่อนเร้นข้อมูล (Information Hiding) หมายถึงความสามารถในการซ่อน หรือการอนุญาตให้เข้าถึงข้อมูลคุณลักษณะ หรือพฤติกรรมในบางส่วนที่จำเป็น Programmerคนอื่น ๆ ต้องการนำ Object ไปใช้งานหรือเขียนโปรแกรมต่อ ก็ศึกษาแค่ Method และ Variables ที่จำเป็นเท่านั้น ไม่ต้องรู้รายละเอียดทั้งหมด ก็สามารถนำไปใช้งานได้แล้ว เช่น เรานำ Object ชื่อกล้องดิจิตอล ไปใช้งาน เราก็รู้แค่ จำนวนรูปที่ถ่ายได้ และวิธีการใช้งาน เป็นต้น BC320:Introduction to Computer Programming
19
ข้อดีของ Encapsulation
Slide เพิ่ม ข้อดีของ Encapsulation สร้างความปลอดภัยให้ข้อมูล เพราะผู้มีสิทธิเท่านั้นถึงจะเข้าถึงข้อมูลได้ ถ้ามีการเปลี่ยนแปลงวัตถุ(Object) ก็จะไม่ส่งผลกระทบถึงวัตถุอื่น ๆ BC320:Introduction to Computer Programming
20
8.5 การสื่อสารระหว่างวัตถุ (Message Passing)
เมื่อพิจารณาจากวัตถุจักรยานแล้ว การสื่อสารระหว่างวัตถุ ก็อย่างเช่น เมื่อวัตถุคน ไปกระตุ้นวัตถุจักรยานให้แสดงพฤติกรรมออกมา ด้วยการออกแรงปั่น BC320:Introduction to Computer Programming
21
8.5 การสื่อสารระหว่างวัตถุ (Message Passing) (ต่อ)
การสื่อสารระหว่างวัตถุ แบ่งออกได้เป็น 2 กรณี วัตถุด้านส่ง (sender) ร้องขอข้อมูลจากวัตถุด้านรับ (receiver) และจำเป็นจะต้องรอค่าส่งกลับ วัตถุด้านส่ง (sender) ต้องการส่งค่าบางค่าไปเปลี่ยนแปลงข้อมูลที่ฝั่งผู้รับ ซึ่งในกรณีนี้วัตถุผู้ส่งไม่จำเป็นต้องสนใจการส่งค่ากลับคืน BC320:Introduction to Computer Programming
22
BC320:Introduction to Computer Programming
ข้อมูล ข้อมูล ข้อความ (message) พฤติกรรม พฤติกรรม พฤติกรรม พฤติกรรม ค่าที่ส่งกลับ (Return value) พฤติกรรม พฤติกรรม วัตถุตัวส่งข้อความ (sender) วัตถุตัวรับข้อความ (receiver) BC320:Introduction to Computer Programming
23
Message Passing ระหว่าง Object คนกับ Object จักรยาน
Slide เพิ่ม Ex1 Message Passing ระหว่าง Object คนกับ Object จักรยาน = + ส่งผ่านข้อมูลแรงปั่นไปให้ Object จักรยาน Object คน + Object จักรยาน BC320:Introduction to Computer Programming
24
BC320:Introduction to Computer Programming
Ex2 Slide เพิ่ม ระบบการทำงานที่มีวัตถุคือ คนงาน (Employee) และการจ่ายเงินเดือน (Payroll) โดยวัตถุทั้งสองจะทำงานร่วมกัน โดยที่วัตถุการจ่ายเงินเดือน มีหน้าที่คำนวณค่าเงินเดือนของวัตถุคนงาน ส่วนประกอบภายในของทั้งสอง ได้แก่ คนงาน ประกอบด้วย คุณลักษณะหรือข้อมูล (attribute/data): หมายเลขบัตรประชาชน เพศ วันเดือนปีเกิด ที่อยู่ พฤติกรรม (Behavior/Method) : ร้องขอข้อมูลบัตรประชาชน เพศ วันเดือนปีเกิด ที่อยู่ การจ่ายเงินเดือน ประกอบด้วย คุณลักษณะหรือข้อมูล (attribute/data) : การจ่ายเงินเดือน พฤติกรรม (Behavior/Method) : คำนวณเงินเดือนที่จะต้องจ่าย BC320:Introduction to Computer Programming
25
Ex3. การสื่อสารระหว่างวัตถุ (Message Passing)
โปรแกรมคำนวณเกรด ดังรูป ประกอบด้วยวัตถุ 4 ตัวด้วยกัน คือ Textbox1, Textbox2, ปุ่มกด Enter และ ปุ่มกด Cancel BC320:Introduction to Computer Programming
26
8.5 การสื่อสารระหว่างวัตถุ (Message Passing) (ต่อ)
จากเมนูตัวอย่าง วัตถุแต่ละตัวจะมีพฤติกรรมดังนี้ Textbox1 (Input score) จะทำหน้าที่รับคะแนน Textbox2 (Your grade) จะทำหน้าที่แสดงเกรด ปุ่มกด Enter จะทำหน้าที่ในการสั่งให้โปรแกรมรับคะแนนที่ Textbox1 มาทำการคำนวณเกรด หลังจากนั้นก็เกรดไปแสดงที่ Textbox2 ปุ่มกด Cancel จะทำหน้าที่ในการปิดเมนู BC320:Introduction to Computer Programming
27
8.5 การสื่อสารระหว่างวัตถุ (Message Passing) (ต่อ)
60 C นำ 60 จาก Textbox1 มาเก็บเก็บไว้ในตัวแปร นำค่าในตัวแปรมาตรวจสอบเงื่อนไข ว่าเกรดเท่ากับเท่าใด นำเกรดที่ได้ ไปแสดงผลที่ช่อง Textbox2 BC320:Introduction to Computer Programming
28
8.6 ความหมายของคลาส (Class)
คลาส เปรียบได้กับพิมพ์เขียวของสิ่งที่เราต้องการสร้างขึ้นมา ซึ่งคลาสจะประกอบด้วยวัตถุหลายๆ ชิ้น รวมขึ้นเป็น 1 คลาส ยกตัวอย่างเช่น คลาสรถยนต์ ก็จะประกอบด้วยล้อรถ ประตู เครื่องยนต์ พวงมาลัย เป็นต้น BC320:Introduction to Computer Programming
29
8.7 ความแตกต่างระหว่าง คลาสและวัตถุ
คลาสก็คือการนำวัตถุหลายๆ อย่างมารวมกัน เพื่อทำให้เกิดสิ่งที่ต้องการ วัตถุจะเป็นส่วนประกอบของคลาส ซึ่งจะมีลักษณะเฉพาะและพฤติกรรม BC320:Introduction to Computer Programming
30
8.7 ความแตกต่างระหว่าง คลาสและวัตถุ
คลาสคอมพิวเตอร์ Mouse Keyboard Monitor CD ROM RAM BC320:Introduction to Computer Programming
31
BC320:Introduction to Computer Programming
class Student { public int id; private string name; private string major; private double gpa; public void setname (String n) {name = n; } public String getname () { return name; } public void setmajor (String m) { major = m; } public String getmajor () { return major; } public void setgpa (double g) { gpa = g; } public float getgpa () { return gpa; } } class Student1 { public static void main ( String args[] ) { Student A = new Student (); A.id = ; A.setname (“Sunisa”); A.setmajor (“Business Computer”); A.setgpa (3.75); System.out.println(A.id + “ “ + A.getname() + “ “ + A.getmajor () + “ “ + A.getgpa()); } p121 สรุป class Student เป็น class ของ class Student1 และ class Student1 ก็เป็น object ของ class Student Class Student มี Attitbute : id, name, major, gpa Method : setname(), getname(), setmajor(), getmajor(), setgpa(), getgpa() class Student1 นั้นจะทำการสืบทอดคุณสมบัติจาก class Student BC320:Introduction to Computer Programming
32
8.8 การสืบทอดองค์ประกอบของวัตถุ (Inheritance)
ส่วนที่พิเศษอย่างหนึ่งของแนวคิดเชิงวัตถุ คือการสืบทอด ซึ่งจะทำให้ในการพัฒนาสิ่งใหม่ๆเป็นไปได้ง่ายขึ้น ยกตัวอย่างเช่น ถ้ามองรถจักรยานเป็นวัตถุหนึ่งแล้ว การที่จะพัฒนารถจักรยานให้เป็นจักรยานเสือภูเขา ก็สามารถนำวัตถุรถจักรยานมาเพิ่มเติมรายละเอียดอีกเล็กน้อย ก็จะทำให้ได้จักรยานเสือภูเขาแล้ว BC320:Introduction to Computer Programming
33
8.8 การสืบทอดองค์ประกอบของวัตถุ (Inheritance) (ต่อ)
คลาสแม่ คลาสลูก BC320:Introduction to Computer Programming
34
ความสามารถของ Inheritance
Slide เพิ่ม ความสามารถของ Inheritance หากต้องการเขียน Class ใหม่ที่มีคุณสมบัติเหมือน Class เดิม โดยยังคงใช้ Class เดิมด้วยในโปรแกรมเดียวกัน เราจะใช้วิธีการถ่ายทอดลักษณะ (Inheritance) โดยไม่ต้องเขียน Code ใหม่ที่ยืดยาว และสามารถออกแบบ Class ให้มีลักษณะต่าง ๆ ได้อย่างหลากหลายในโปรแกรมเดียวกันได้ BC320:Introduction to Computer Programming
35
8.8 การสืบทอดองค์ประกอบของวัตถุ (Inheritance) (ต่อ)
การสืบทอดองค์ประกอบจากคลาสต้นแบบจะมี 2 แบบ BC320:Introduction to Computer Programming
36
8.8 การสืบทอดองค์ประกอบของวัตถุ (Inheritance) (ต่อ)
ตัวอย่าง การสืบทอดคุณลักษณะแบบ Single Inheritance BC320:Introduction to Computer Programming
37
8.8 การสืบทอดองค์ประกอบของวัตถุ (Inheritance) (ต่อ)
ตัวอย่าง การสืบทอดคุณลักษณะแบบ Multiple Inheritance BC320:Introduction to Computer Programming
38
8.9 ลำดับชั้นของวัตถุ (Hierarchy)
คำว่าวัตถุนั้น ในความเป็นจริงแล้วไม่ได้เป็นหน่วยย่อยซึ่งเล็กที่สุด แต่วัตถุจะประกอบด้วยหลายๆวัตถุ เช่น BC320:Introduction to Computer Programming
39
BC320:Introduction to Computer Programming
จบการบรรยาย BC320:Introduction to Computer Programming
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.