1 / 56

หลักการเชิง วัตถุ (Object Oriented Concept)

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

gretel
Download Presentation

หลักการเชิง วัตถุ (Object Oriented Concept)

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. หลักการเชิงวัตถุ(Object Oriented Concept) Nerissa Onkhum

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

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

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

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

  6. ตัวอย่างของวัถตุ

  7. ตัวอย่างของวัถตุ

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

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

  10. รูปแสดงการสร้างวัตถุจากคลาส Student

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

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

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

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

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

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

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

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

  19. Modifier ในภาษาจาวา • Modifier ในภาษาจาวาแบ่งออกเป็น 2 ประเภท คือ • Access modifier ได้แก่ private, public, protected และ package (อาจเรียก package ว่า none, default หรือ friendly) • Non-access modifier ได้แก่ final, abstract, static, native, transient, volatile, synchronized, strictfp

  20. Modifier ในภาษาจาวา • การนำ Access Modifier ไปใช้งาน • access modifier ใช้กำหนดไว้หน้าคลาส แอตทริบิวต์ เมธอด • จุดประสงค์ เพื่อกำหนดระดับการเข้าใช้งาน • access modifier : public, protected, package, private • modifier publicและ packageสามารถใช้กำหนดให้กับคลาส แอตทริบิวต์หรือเมธอด • Modifier protectedและ privateใช้กำหนดให้กับคลาสไม่ได้ แต่สามารถกำหนดให้กับแอตทริบิวต์หรือเมธอดได้

  21. Modifier ในภาษาจาวา สรุปการนำ access modifier แต่ละแบบไปใช้งาน

  22. Modifier ในภาษาจาวา • จาวาแบ่งระดับของ access modifier ออกเป็น 4 ระดับ คือ • public (สาธารณะ) หากกำหนด modifier public ให้กับคลาส แอตทริบิวต์ หรือเมธอดใดแล้ว คลาสอื่น ๆ จะสามารถเข้าใช้งานคลาส แอตทริบิวต์ หรือเมธอดนั้นได้อิสระ ไม่มีขีดจำกัด • protected (ถูกปกป้อง) ไม่ได้เปิดให้คลาสใด ๆ สามารถเข้าใช้งานได้อย่างอิสระ แต่ไม่ถึงกับปิดไม่ให้ใครเข้าใช้งานเลย

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

  24. Modifier ในภาษาจาวา • package • กรณีที่ไม่ได้กำหนด modifier ใด ๆ ไว้หน้าคลาส แอตทริบิวต์หรือเมธอด จะทำให้คลาส แอตทริบิวต์ หรือเมธอดมีระดับเข้าถึงเป็น package • กำหนด modifier เป็น package หน้าคลาส แอตทริบิวต์ หรือเมธอดจะทำให้คลาสที่อยู่ในแพ็กเกจอื่นจะไม่สามารถเข้าใช้งานคลาส แอตทริบิวต์ หรือเมธอดได้ • private (ส่วนบุคคล) • แอตทริบิวต์และเมธอดของคลาสจะถูกหุ้มห่อ (Encapsulate) เอาไว้ ปิดกั้นไม่ให้คลาสอื่นเข้ามาใช้งานแอตทริบิวต์หรือเมธอดที่กำหนด modifier เป็น private ได้ • จะมีเฉพาะคลาสของมันเองเท่านั้นที่มีสิทธิ์ใช้งานได้หลักการนี้เรียกว่า information hiding

  25. Modifier ในภาษาจาวา สรุปการทำงาน access modifier แต่ละแบบ

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

  27. การประกาศคลาส • ตัวอย่าง public class Student { }

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

  29. การประกาศคุณลักษณะ • ตัวอย่าง public class Student { public String id; public String name; public double gpa; }

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

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

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

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

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

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

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

  37. การเรียกใช้สมาชิกของวัตถุการเรียกใช้สมาชิกของวัตถุ • ตัวอย่าง s1.setName("Thana");

  38. ตัวอย่างโปรแกรม 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(); } }

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

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

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

  42. ตัวอย่างโปรแกรม 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); } }

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

  44. ตัวอย่างโปรแกรม 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; } }

  45. การมีได้หลายรูปแบบ • หมายถึงการที่สามารถตอบสนองต่อข่าวสาร (เมธอด) เดียวกันด้วยวิธีการที่ต่างกัน และสามารถกำหนดวัตถุได้หลายรูปแบบ • ตัวอย่าง

  46. ตัวอย่างโปรแกรม 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(); } }

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

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

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

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

More Related