งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

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

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "หลักการเชิงวัตถุ (Object Oriented Concept)"— ใบสำเนางานนำเสนอ:

1 หลักการเชิงวัตถุ (Object Oriented Concept)
Nerissa Onkhum 22/02/62

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

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

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

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

6 วัตถุ “พนักงานบริษัท”
ตัวอย่างของวัถตุ วัตถุ “พนักงานบริษัท” แอตทริบิวต์ รหัสพนักงาน, เงินเดือน, เวลาเข้างาน เมธอด รูดบัตรพนักงาน, รับเงินเดือน วัตถุ “โทรทัศน์” แอตทริบิวต์ ยี่ห้อ, ขนาด, ระบบเสียง, ฟังก์ชันการทำงาน เมธอด เปิด, ปิด, เพิ่ม, ลดเสียง, ปรับความคมชัดของภาพ 22/02/62

7 วัตถุ “รถจักรยานยนต์” วัตถุ “โทรศัพท์มือถือ”
ตัวอย่างของวัถตุ วัตถุ “รถจักรยานยนต์” แอตทริบิวต์ ยี่ห้อ, รุ่น, สี, ระบบเกียร์, ปริมาตรกระบอกสูบ เมธอด ติดเครื่อง, ออกตัว, เลี้ยว, เปลี่ยนเกียร์, หยุดรถ วัตถุ “โทรศัพท์มือถือ” แอตทริบิวต์ ยี่ห้อ, รุ่น, จอภาพ, รูปแบบของเสียงเรียกเข้า เมธอด เปิด, ปิด, เลือกรูปแบบของเสียงเรียกเข้า, ตั้งเวลาปลุก 22/02/62

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

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

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

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

12 ตัวอย่างคุณลักษณะของวัตถุ
22/02/62

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

14 ตัวอย่างคุณลักษณะของคลาส
22/02/62

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

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

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

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

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 22/02/62

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

21 สรุปการนำ access modifier แต่ละแบบไปใช้งาน
ใช้กับคลาส ใช้กับแอตทริบิวต์ ใช้กับเมธอด public protected package private 22/02/62

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

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

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

25 Modifier ในภาษาจาวา public  protected  package private
สรุปการทำงาน access modifier แต่ละแบบ Access modifier ใช้ได้ทั้งหมด แพ็กเกจเดียวกัน ต่างแพ็กเกจกัน ต่างแพ็กเกจกันแต่เป็นคลาสแม่คลาสลูก คลาสเดียวกัน public protected package private 22/02/62

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

27 การประกาศคลาส ตัวอย่าง public class Student { } 22/02/62

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

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

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

31 ตัวอย่างโปรแกรม public class Student { public String id;
public String name; public double gpa; 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); 22/02/62

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

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

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

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

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

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

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(); } 22/02/62

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

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

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

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 void setGPA(double GPA) { gpa = GPA; public void showDetails() { System.out.println("ID: "+id); System.out.println("Name: "+name); System.out.println("GPA: "+gpa); 22/02/62

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

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; 22/02/62

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

46 ตัวอย่างโปรแกรม class Ball { public void throw() { } }
class SoccerBall extends Ball { public void throw() { System.out.println("Throwing soccerball"); class TennisBall extends Ball { 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(); 22/02/62

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

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

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

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

51 รูปแสดงขั้นตอนการพัฒนาโปรแกรม
22/02/62

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

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

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

55 แบบทดสอบที่ 2 ให้นักศึกษาตอบคำถามต่อไปนี้
1. จงอธิบายความหมายและส่วนประกอบของวัตถุ พร้อมทั้งยกตัวอย่างประกอบ 2. คลาสคืออะไร 3. เมธอดคืออะไร 4. จงอธิบายการสื่อสารระหว่างวัตถุ 5. จงอธิบาย Modifier ในภาษาจาวาคืออะไร มีกี่ประเภท 6. จงสรุปการนำ access modifier แต่ละแบบไปใช้งาน 7. จงสรุปการทำงาน access modifier แต่ละแบบ 8. จงอธิบาย UML คืออะไร และมีส่วนประกอบอะไรบ้าง 22/02/62

56 22/02/62


ดาวน์โหลด ppt หลักการเชิงวัตถุ (Object Oriented Concept)

งานนำเสนอที่คล้ายกัน


Ads by Google