1 / 45

บทที่ 2

บทที่ 2. หลักการเชิงออปเจ็ค (Object Oriented Concept). วัตถุประสงค์. แนะนำ ออปเจ็คและคลาส อธิบายคุณลักษณะและเมธอด อธิบายการเขียนโปรแกรมเชิงออปเจ็คโดยใช้ภาษาจาวา แนะนำการเขียนโปรแกรมโดยใช้คุณลักษณะเด่นของโปรแกรมเชิงออปเจ็ค แนะนำ Unified Modelling Language อธิบายขั้นตอนการพัฒนาโปรแกรม.

zach
Download Presentation

บทที่ 2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. บทที่ 2 หลักการเชิงออปเจ็ค (Object Oriented Concept)

  2. วัตถุประสงค์ • แนะนำออปเจ็คและคลาส • อธิบายคุณลักษณะและเมธอด • อธิบายการเขียนโปรแกรมเชิงออปเจ็คโดยใช้ภาษาจาวา • แนะนำการเขียนโปรแกรมโดยใช้คุณลักษณะเด่นของโปรแกรมเชิงออปเจ็ค • แนะนำ Unified Modelling Language • อธิบายขั้นตอนการพัฒนาโปรแกรม

  3. หลักการเชิงออปเจ็ค • ภาษาจาวาเป็นภาษาคอมพิวเตอร์ที่ใช้หลักการเชิงออปเจ็ค • OOP (Object Oriented Programming) • OOP เป็นขบวนการการพัฒนาโปรแกรมโดยการจำลองปัญหาว่าประกอบไปด้วยออปเจ็คใดบ้าง • นิยามที่สำคัญคือ • ออปเจ็ค (object) • คลาส (class)

  4. ออปเจ็ค • ออปเจ็คคือสิ่งต่างๆที่มีอยู่ในชีวิตประจำวัน • ออปเจ็คที่เป็นรูปธรรมเช่น นักศึกษา ใบลงทะเบียนปากกา และรถ • ออปเจ็คที่เป็นนามธรรมเช่น คะแนน รายชื่อวิชา บัญชีเงินฝาก และตารางเที่ยวบิน • ออปเจ็คประกอบด้วย • คุณลักษณะ (attribute) หรือข้อมูล (data) • พฤติกรรม (behavior) หรือเมธอด (method)

  5. ออปเจ็ค • คุณลักษณะ • ข้อมูลของออปเจ็ค • แต่ละออปเจ็คอาจมีค่าของคุณลักษณะที่ต่างกัน • เมธอด • สิ่งที่ออปเจ็คสามารถกระทำได้ • คำสั่งในการทำงานของโปรแกรมเชิงออปเจ็ค • โปรแกรมจะจัดการกับข้อมูลโดยเรียกใช้เมธอด

  6. ตัวอย่างของออปเจ็ค • นักศึกษา • อาจจะมีคุณลักษณะเช่น รหัส ชื่อและเกรดเฉลี่ย • อาจจะมีเมธอดเช่น ลงทะเบียน สอบ และเดิน • รถยนต์ • อาจจะมีคุณลักษณะเช่นยี่ห้อรุ่น และสี • อาจจะมีเมธอดเช่น เคลื่อนที่ หยุด และเลี้ยว • สุนัข • อาจจะมีคุณลักษณะเช่น ชื่อ พันธ์และสี • อาจจะมีเมธอดเช่น เห่า คลาน และกระดิกหาง

  7. ตัวอย่างของโปรแกรมเชิงออปเจ็คตัวอย่างของโปรแกรมเชิงออปเจ็ค • โปรแกรมระบบจัดการบัญชีเงินฝากของธนาคาร • ตัวอย่างของออปเจ็ค • Account • Customer • Transaction • ATM • Account • อาจมีคุณลักษณะเช่น เลขที่บัญชี ชื่อเจ้าของบัญชี วันที่เปิดบัญชี และยอดเงินคงเหลือ • อาจมีเมธอดเช่น ฝาก ถอน และโอนเงิน

  8. คลาส • เปรียบเสมือนพิมพ์เขียวของออปเจ็ค • ออปเจ็คจะถูกสร้างมาจากคลาส บางครั้งเรียกว่าเป็น instance ของคลาส • คลาสหนึ่งคลาสสามารถสร้างออปเจ็คได้หลายออปเจ็ค อาทิเช่น คลาสชื่อ Student อาจสร้างออปเจ็คชื่อ s1,s2 หรือ s3 ซึ่งเป็นออปเจ็คชนิด Student

  9. รูปแสดงการสร้างออปเจ็คจากคลาส Student

  10. คุณลักษณะของออปเจ็ค • ข้อมูลที่เก็บอยู่ในออปเจ็ค • แบ่งเป็นตัวแปร (variable) และค่าคงที่ (constant) • ตัวแปรคือคุณลักษณะที่สามารถเปลี่ยนค่าได้ • ค่าคงที่คือคุณลักษณะที่ไม่สามารถเปลี่ยนค่าได้

  11. ตัวอย่างคุณลักษณะของออปเจ็คตัวอย่างคุณลักษณะของออปเจ็ค

  12. คุณลักษณะของคลาส • เป็นคุณลักษณะที่ใช้ร่วมกันของทุกออปเจ็ค • ทุกออปเจ็คจะใช้คุณลักษณะร่วมกันทำให้ประหยัดพื้นที่ในหน่วยความจำ • ตัวอย่างเช่น คุณลักษณะที่กำหนดให้เป็นค่าคงที่ชื่อ MIN_GPA

  13. ตัวอย่างคุณลักษณะของคลาสตัวอย่างคุณลักษณะของคลาส

  14. เมธอด • วิธีการหรือการกระทำที่นิยามอยู่ในคลาสหรือออปเจ็คเพื่อใช้ในการจัดการกับคุณลักษณะของออปเจ็ค • เปรียบเทียบได้กับ function, procedure หรือ subroutine ของโปรแกรมเชิงกระบวนการ • ตัวอย่างเช่น เมธอด deposit()เพื่อเป็นเมธอดสำหรับฝากเงิน

  15. การสื่อสารระหว่างออปเจ็คการสื่อสารระหว่างออปเจ็ค • การสื่อสารระหว่างกันของออปเจ็คทำได้โดยการผ่านข่าวสาร (message) objBคือชื่อออปเจ็ค method4 คือชื่อเมธอด (1,2) คือargument

  16. การสื่อสารระหว่างออปเจ็ค • ข่าวสารจะส่งผ่านจากออปเจ็ค objA ที่เป็นผู้ส่ง (sender) เพื่อเรียกการทำงานของเมธอดที่ชื่อ method4 จากออปเจ็ค objB ที่เป็นผู้รับ (receiver) • objB อาจส่งค่า (return value) บางค่ากลับมายัง objA

  17. การเขียนโปรแกรมเชิงออปเจ็คโดยใช้ภาษาจาวาการเขียนโปรแกรมเชิงออปเจ็คโดยใช้ภาษาจาวา • การประกาศคลาส • การประกาศคุณลักษณะ • การประกาศเมธอด • การประกาศและสร้างออปเจ็ค • การเรียกใช้สมาชิกของออปเจ็ค

  18. การประกาศคลาส • โปรแกรมภาษาจาวาแต่ละโปรแกรมจะประกอบไปด้วยคลาสอย่างน้อยหนึ่งคลาส โดยมีรูปแบบการประกาศดังนี้ [modifier] class Classname { [class member] } • modifier คือคีย์เวิร์ด (keyword) ของภาษาจาวาที่ใช้ในการอธิบายระดับการเข้าถึง (access modifier) • class คือคีย์เวิร์ดของภาษาจาวาเพื่อระบุว่าเป็นการประกาศคลาส • Classnameคือชื่อคลาส • class memberคือเมธอดหรือคุณลักษณะ • ตัวอย่าง public class Student { }

  19. การประกาศคุณลักษณะ • คุณลักษณะของออปเจ็คคือตัวแปรหรือค่าคงที่ซึ่งประกาศภายในออปเจ็ค โดยมีรูปแบบการประกาศดังนี้ [modifier] dataType attributeName; • modifier คือคีย์เวิร์ดของภาษาจาวาที่อธิบายคุณสมบัติต่างๆของตัวแปรหรือค่าคงที่ • dataType คือชนิดข้อมูลซึ่งอาจเป็นชนิดข้อมูลพื้นฐานหรือชนิดคลาส • attributeName คือชื่อของคุณลักษณะ • ตัวอย่าง public class Student { public String id; public String name; public double gpa; }

  20. การประกาศเมธอด • ภาษาจาวากำหนดรูปแบบของการประกาศเมธอดที่อยู่ในคลาสไว้ดังนี้ [modifier] return_type methodName([arguments]) { [method_body] } • modifier คือคีย์เวิร์ดของภาษาจาวาที่ใช้อธิบายระดับการเข้าถึง • return_type คือชนิดข้อมูลของค่าที่จะมีการส่งกลับ • methodName คือชื่อของเมธอด • arguments คือตัวแปรที่ใช้ในการรับข้อมูลที่ออปเจ็คส่งมาให้ • method_body คือคำสั่งต่างๆของภาษาจาวาที่อยู่ในเมธอด

  21. ตัวอย่างโปรแกรม public class Student { public String id; public String name; publicdouble gpa; public void setID(String ID) { id = ID; } public void setName(String n) { name = n; } public voidsetGPA(double GPA) { gpa = GPA; } public void showDetails() { System.out.println("ID: "+id); System.out.println("Name: "+name); System.out.println("GPA: "+gpa); } }

  22. เมธอดที่ชื่อ main() • โปรแกรมจาวาประยุกต์ (Java Application) จะเริ่มต้นการทำงานในคลาสที่มีเมธอดที่ชื่อ main โดยมีรูปแบบของเมธอดดังนี้ public static void main(String args[]) { [method_body] }

  23. การประกาศออปเจ็ค • ออปเจ็คทุกออปเจ็คในโปรแกรมภาษาจาวาจะต้องมีคำสั่งประกาศเพื่อระบุว่าออปเจ็คนั้นเป็นออปเจ็คของคลาสใด โดยมีรูปแบบการประกาศดังนี้ [modifier] ClassName objectName; • modifier คือคีย์เวิร์ดที่อธิบายคุณสมบัติต่างๆของออปเจ็ค • ClassName คือชื่อของคลาสสำหรับออปเจ็คนั้น • objectName คือชื่อของออปเจ็ค • ตัวอย่าง Student s1;

  24. การสร้างออปเจ็ค • คำสั่งที่ใช้ในการสร้างออปเจ็คจะมีรูปแบบดังนี้ objectName = new ClassName([arguments]); • objectName คือชื่อของออปเจ็ค • new คือคีย์เวิร์ดของภาษาจาวาเพื่อใช้ในการสร้างออปเจ็ค • ClassName คือชื่อของคลาส • arguments คือค่าที่ต้องการส่งผ่านในการเรียก Constructor • ตัวอย่าง s1 = new Student();

  25. การประกาศและสร้างออปเจ็คการประกาศและสร้างออปเจ็ค • คำสั่งในการประกาศและสร้างออปเจ็คสามารถที่จะรวมเป็นคำสั่งเดียวกัน โดยมีรูปแบบคำสั่งดังนี้ [modifier] ClassName objectName = new ClassName([arguments]); • ตัวอย่าง Student s1 = new Student();

  26. การเรียกใช้สมาชิกของออปเจ็คการเรียกใช้สมาชิกของออปเจ็ค • การเรียกใช้คุณลักษณะของออปเจ็คมีรูปแบบดังนี้ objectName.attributeName; • การเรียกใช้เมธอดของออปเจ็คมีรูปแบบดังนี้ objectName.methodName([arguments]); • objectName คือชื่อของออปเจ็คที่สร้างขึ้น • methodName คือชื่อของเมธอดของออปเจ็คนั้น • arguments คือค่าที่ต้องการส่งผ่านไปให้กับเมธอดของออปเจ็คนั้น • ตัวอย่าง s1.setName("Thana");

  27. ตัวอย่างโปรแกรม public class Sample { public static void main(String args[]) { Student s1 = new Student(); Student s2 = new Student(); Student s3 = new Student(); s1.setID("1234"); s1.setName("Thana"); s1.setGPA(3.25); s1.showDetails(); s2.setID("1122"); s2.setName("Somchai"); s2.setGPA(2.90); s2.showDetails(); s3.setID("2211"); s3.setName("Somsri"); s3.setGPA(3.00); s3.showDetails(); } }

  28. คุณลักษณะเด่นของโปรแกรมเชิงออปเจ็คคุณลักษณะเด่นของโปรแกรมเชิงออปเจ็ค • การห่อหุ้ม (Encapsulation) • การสืบทอด (Inheritance) • การมีได้หลายรูปแบบ (Polymorphism)

  29. การห่อหุ้ม • หมายถึงการจะเรียกใช้คุณลักษณะของออปเจ็คจะทำได้โดยการเรียกผ่านเมธอดเท่านั้น • หลักการของการห่อหุ้มคือการกำหนดให้คุณลักษณะของออปเจ็คมีคุณสมบัติเป็น private และกำหนดให้เมธอดมีคุณสมบัติเป็น public

  30. ข้อดีของการห่อหุ้ม • การซ่อนเร้นข้อมูล (Information Hiding) • ทำให้ออปเจ็คสามารถติดต่อกับออปเจ็คภายนอกผ่านเมธอดที่เป็นส่วนของ interface เท่านั้น • ความเป็นโมดูล (Modularity) • การพัฒนาโปรแกรมเชิงออปเจ็คจะสามารถกำหนดให้ออปเจ็คแต่ละออปเจ็คมีความเป็นอิสระต่อกัน

  31. ตัวอย่างโปรแกรม public class Student { private String id; private String name; private double gpa; public void setID(String ID) { id = ID; } public void setName(String n){ name = n; } public voidsetGPA(double GPA) { gpa = GPA; } public void showDetails() { System.out.println("ID: "+id); System.out.println("Name: "+name); System.out.println("GPA: "+gpa); } }

  32. การสืบทอด • หมายถึงการนิยามคลาสใหม่จากรูปแบบของคลาสที่มีอยู่แล้ว โดยคลาสใหม่สามารถที่จะนำคุณลักษณะและเมธอดของคลาสเดิมมาใช้ได้ • โดยในภาษาจาวาจะใช้คีย์เวิร์ด extends เพื่อระบุการสืบทอด • ตัวอย่าง

  33. ตัวอย่างโปรแกรม public class PartTimeStudent extends Student { } public class FullTimeStudent extends Student { } public class GradStudent extends Student { private String thesisTitle; private String supervisor; public void setThesisTitle(String t) { thesisTitle = t; } public void setSupervisor(String s) { supervisor = s; } } public class PhDStudent extends GradStudent { public boolean passQualify; public boolean isPassQualify() { return passQualify; } }

  34. การมีได้หลายรูปแบบ • หมายถึงการที่สามารถตอบสนองต่อข่าวสาร (เมธอด) เดียวกันด้วยวิธีการที่ต่างกัน และสามารถกำหนดออปเจ็คได้หลายรูปแบบ • Overridden method • Dynamic Binding

  35. ตัวอย่าง

  36. ตัวอย่างโปรแกรม class Ball { public void throw() { } } class SoccerBall extends Ball { public void throw() { System.out.println("Throwing soccerball"); } } class TennisBall extends Ball { public void throw() { System.out.println("Throwing tennisball"); } } public class TestBall { public static void main(String args[]) { Ball b1 = new Ball(); SoccerBall b2 = new SoccerBall(); Ball b3 = new SoccerBall(); } }

  37. Unified Modeling Language (UML) • เป็นภาษาที่สามารถนำรูปกราฟฟิกมาจำลองโปรแกรมเชิงออปเจ็คได้ • ประกอบด้วยสองส่วนคือ • ไดอะแกรมของคลาส (Class Diagram) • ไดอะแกรมของออปเจ็ค (Object Diagram)

  38. ไดอะแกรมของคลาส • เป็นสัญลักษณ์ที่ใช้แสดงคลาส • ประกอบด้วยส่วนต่างๆสามส่วนคือ • ชื่อของคลาส • คุณลักษณะภายในคลาส • เมธอดภายในคลาส

  39. ไดอะแกรมของออปเจ็ค • ประกอบไปด้วยส่วนต่างๆสองส่วนคือ • ส่วนที่ระบุชื่อของออปเจ็ค • ส่วนที่ระบุค่าของคุณลักษณะภายในออปเจ็ค

  40. ขั้นตอนการพัฒนาโปรแกรมขั้นตอนการพัฒนาโปรแกรม • ขั้นตอนการวิเคราะห์ (Analysis) • ขั้นตอนการออกแบบ (Design) • ขั้นตอนการเขียนโปรแกรม (Programming) • ขั้นตอนการทดสอบ (Testing) • ขั้นตอนการทำงาน (Operation)

  41. รูปแสดงขั้นตอนการพัฒนาโปรแกรมรูปแสดงขั้นตอนการพัฒนาโปรแกรม

  42. สรุปเนื้อหาของบท • โปรแกรมเชิงออปเจ็คจะมีคำนิยามที่สำคัญสองคำคือ ออปเจ็คและคลาส • ออปเจ็คคือสิ่งต่างๆที่มีอยู่ในชีวิตประจำวันจะประกอบไปด้วยคุณลักษณะและเมธอด • คลาสเปรียบเสมือนพิมพ์เขียวของออปเจ็ค ออปเจ็คที่ถูกสร้างมาจากคลาส ออปเจ็คหลายออปเจ็คสามารถถูกสร้างจากคลาสหนึ่งคลาสได้ • คุณลักษณะของออปเจ็คคือข้อมูลที่เก็บอยู่ในออปเจ็ค ซึ่งจะแบ่งออกเป็น ตัวแปรและค่าคงที่ • คุณลักษณะของคลาสเป็นคุณลักษณะที่ใช้ร่วมกันของทุกออปเจ็ค • เมธอดคือวิธีการเพื่อใช้ในการจัดการกับคุณลักษณะของออปเจ็คหรือคุณลักษณะของคลาส

  43. สรุปเนื้อหาของบท • ภาษาจาวามีนิยามในการเขียนโปรแกรมเชิงออปเจ็คเพื่อประกาศคลาส คุณลักษณะ เมธอด และออปเจ็ค • โปรแกรมเชิงออปเจ็คจะมีคุณลักษณะเด่นอยู่สามประการคือ การห่อหุ้ม การสืบทอด และการมีได้หลายรูปแบบ • การห่อหุ้มคือการที่ให้คุณลักษณะถูกห่อหุ้มอยู่ภายในเมธอด โดยกำหนดให้คุณลักษณะมี access modifier เป็น private และกำหนดให้เมธอดมี access modifier เป็น public • ข้อดีของการห่อหุ้มคือการซ่อนเร้นข้อมูลและความเป็นโมดูล • การสืบทอดคือการที่คลาสใหม่สามารถนำเอาคุณลักษณะและเมธอดของคลาสที่ออกแบบไว้แล้วมาใช้ได้

  44. สรุปเนื้อหาของบท • การมีได้หลายรูปแบบคือการที่กำหนดให้มีการตอบสนองต่อเมธอดเดียวกันด้วยวิธีการที่ต่างกัน และสามารถกำหนดออปเจ็คได้หลายรูปแบบ • Unified Modeling Language (UML) เป็นภาษาที่ใช้รูปกราฟฟิกเพื่อจำลองระบบซอฟต์แวร์ ในที่นี้ได้แนะนำสัญลักษณ์ของ UML ที่สำคัญสองอย่างคือ ไดอะแกรมของคลาสและไดอะแกรมของออปเจ็ค • วัฎจักรการพัฒนาโปรแกรมจะประกอบไปด้วยขั้นตอนต่างๆ 5 ขั้นตอนคือ ขั้นตอนการวิเคราะห์ ขั้นตอนการออกแบบ ขั้นตอนการเขียนโปรแกรม ขั้นตอนการทดสอบ และขั้นตอนการทำงาน

  45. แบบฝึกหัด • แบบฝึกหัดที่ 1 การออกแบบคลาส • เขียนข้อกำหนดอธิบายระบบโปรแกรมสำหรับการตัดเกรดของรายวิชาหนึ่งรายวิชา • เขียนไดอะแกรมของคลาสเพื่ออธิบายคุณลักษณะและเมธอดทั้งหมดที่มีอยู่ในคลาส

More Related