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

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

Lec03 :: หลักการเชิงออปเจ็ค (Object Oriented Concept) วิชา การเขียนโปรแกรมเชิงวัตถุ โดย อ. นัฐพงศ์ ส่งเนียม

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


งานนำเสนอเรื่อง: "Lec03 :: หลักการเชิงออปเจ็ค (Object Oriented Concept) วิชา การเขียนโปรแกรมเชิงวัตถุ โดย อ. นัฐพงศ์ ส่งเนียม"— ใบสำเนางานนำเสนอ:

1 Lec03 :: หลักการเชิงออปเจ็ค (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 ( [argument]) { [method_body] } - modifier คือคีย์เวิร์ดของภาษาจาวาที่ใช้อธิบายระดับการ เข้าถึง - return_type คือชนิดข้อมูลของค่าที่จะมีการส่งกลับ - methodName คือชื่อของเมธอด - arguments คือ ตัวแปรที่ใช้ในการรับข้อมูลที่ออปเจ็คส่ง มาให้ - method_body คือคำสั่งต่าง ๆ ของภาษาจาวาที่อยู่ใน เมธอด

21 ตัวอย่างโปรแกรม public class Student { public String id; public String name; public double gpa; public static final double minGPA =2.00 ; 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 เมธอดที่ชื่อ 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 ([argument]); - objectName คือชื่อของออปเจ็ค - new คือคีย์เวิร์ดของภาษาจาวาเพื่อใช้ในการสร้างออป เจ็ค - ClassName คือชื่อของคลาส - arguments คือค่าที่ต้องการส่งผ่านในการเรียกเมธอด ตัวอย่าง s1 = new Student ();

25 การประกาศและสร้างออปเจ็ค คำสั่งในการประกาศและสร้างออปเจ็คสามารถที่จะ รวมเป็นคำสั่งเดียวกันโดยมีรูปแบบคำสั่งดังนี้ [modifier] ClassName objectName = new className ([argument]); ตัวอย่าง 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 คุณลักษณะเด่นของโปรแกรมเชิงออปเจ็ค การห่อหุ้ม การสืบทอด การมีได้หลายรูปแบบ

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

30 ตัวอย่างโปรแกรม public class Student { private String id; private String name; private double gpa; public static final double minGPA =2.00 ; 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.printIn(“ID: “+id); System.out.printIn(“Name: “+name); System.out.printIn(“GPA: “+gpa); }

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

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

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

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

35 สรุปเนื้อหาของบท ออปเจ็คต่าง ๆ จะประกอบไปด้วยคุณลักษณะและเมธอด ออปเจ็คหลายออปเจ็คสามารถถูกสร้างจากคลาสหนึ่งคลาส ได้ คุณลักษณะแบ่งออกเป็นสองประเภทคือ - คุณลักษณะของออปเจ็ค คือข้อมูลที่เก็บอยู่ในแต่ละออป เจ็ค - คุณลักษณะของคลาส คือคุณลักษณะที่ใช้ร่วมกันของทุก ออปเจ็ค เมธอดคือวิธีการเพื่อใช้ในการจัดการกับคุณลักษณะของ ออปเจ็คหรือคุณลักษณะของคลาส

36 สรุปเนื้อหาของบท การเขียนโปรแกรมเชิงออปเจ็คโดยใช้ภาษาจาวามีรูปแบบ ต่าง ๆ ดังนี้ - การประกาศคลาส [modifier] class Classname { [class member] } - การประกาศคุณลักษณะ [modifier] dataType attributeName; - การประกาศเมธอด [modifier] return_type methodName ([arguments]) { [method_body] }

37 สรุปเนื้อหาของบท การเขียนโปรแกรมเชิงออปเจ็คโดยใช้ภาษาจาวามีรูปแบบ ต่าง ๆ ดังนี้ (ต่อ) - การประกาศออปเจ็ค [modifier] ClassName objectName; - การสร้างออปเจ็ค objectName = new ClassName ([arguments]); - การเรียกใช้คุณลักษณะของออปเจ็ค objectName.attributeName; - การเรียกใช้เมธอดของออปเจ็ค objectName.methodName ([arguments]);

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


ดาวน์โหลด ppt Lec03 :: หลักการเชิงออปเจ็ค (Object Oriented Concept) วิชา การเขียนโปรแกรมเชิงวัตถุ โดย อ. นัฐพงศ์ ส่งเนียม

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


Ads by Google