1 / 24

บทที่ 3

บทที่ 3. หลักการเขียนโปรแกรมเชิงวัตถุ ( Introduction to Object Oriented Programming). โปรแกรมเชิงวัตถุ (Object Oriented Language: OOP). มองส่วนต่างๆ เป็นวัตถุหรือออบเจ็กต์ที่ไม่ขึ้นต่อกันแต่มีการทำงานร่วมกัน แต่ละออบเจ็กต์ คือขอบเขตของงานส่วนย่อยที่เป็นอิสระต่อกัน

albany
Download Presentation

บทที่ 3

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. บทที่ 3 หลักการเขียนโปรแกรมเชิงวัตถุ (Introduction to Object Oriented Programming)

  2. โปรแกรมเชิงวัตถุ (Object Oriented Language: OOP) • มองส่วนต่างๆ เป็นวัตถุหรือออบเจ็กต์ที่ไม่ขึ้นต่อกันแต่มีการทำงานร่วมกัน • แต่ละออบเจ็กต์ คือขอบเขตของงานส่วนย่อยที่เป็นอิสระต่อกัน • ไม่จำเป็นต้องเป็นสิ่งที่จับต้องได้แต่ขอให้มีอยู่จริง เช่น เวลาเป็นสิ่งที่จับต้องไม่ได้ แต่มีอยู่จริง

  3. คุณสมบัติหลักของโปรแกรมเชิงวัตถุคุณสมบัติหลักของโปรแกรมเชิงวัตถุ • นำกลับมาใช้ใหม่ได้ (Reuse) • ประหยัดเวลาในการพัฒนา (Rapid Delivery) • ใช้งานง่าย (User Friendly) • ดูแลรักษาได้ง่าย ( More Maintainable) • มีคุณภาพสูง (Greater Quality System)

  4. ข้อแตกต่างจากโปรแกรมแบบมีโครงสร้างข้อแตกต่างจากโปรแกรมแบบมีโครงสร้าง

  5. คลาส (Class) และออบเจ็กต์ (Object) (1) ออบเจ็กต์ คลาส

  6. คลาส (Class) และออบเจ็กต์ (Object) (2) • คลาส คือ สิ่งที่ใช้อธิบายลักษณะและความสามารถของออบเจ็กต์ เปรียบได้กับแม่แบบของออบเจ็กต์ • ออบเจ็กต์ คือ สิ่งต่าง ๆ รอบตัว ซึ่งมีคุณลักษณะ (Attribute) และความสามารถในการทำงาน (Method) ตัวอย่างออบเจ็กต์ เช่น คน, รถยนต์, เครื่องคอมพิวเตอร์ เป็นต้น

  7. ตัวอย่างคลาส • ให้ภาษีเป็นคลาส • คุณลักษณะของภาษี คือ อัตราภาษี, จำนวนเงินภาษีที่ต้องจ่าย • ส่วนการทำงานคือ การคำนวณจำนวนเงินภาษีที่ต้องจ่าย

  8. ขั้นตอนการใช้งานคลาส • การประกาศคลาส • การประกาศแอตทริบิวต์ • การประกาศเมธอด • การประกาศออบเจ็กต์ • การเข้าถึงสมาชิกของคลาส

  9. การประกาศคลาส [modifier] class ClassName { [AttributeName] [MethodName] } โดยที่ modifier เป็นคีย์เวิร์ดที่กำหนดคุณสมบัติการเข้าถึงคลาส ClassNameเป็นชื่อคลาส AttributeNameเป็นส่วนของการประกาศแอตทริบิวต์ MethodName เป็นส่วนของการประกาศเมธอด

  10. การประกาศแอตทริบิวต์ [modifier] dataTypeAttributeName; โดยที่ modifier เป็นคีย์เวิร์ดที่กำหนดคุณสมบัติการเข้าถึงแอตทริบิวต์ dataType เป็นชนิดข้อมูลของแอตทริบิวต์ AttributeNameเป็นชื่อแอตทริบิวต์

  11. การประกาศเมธอด [modifier] return_typeMethodname ([parameter]) { [method_body] return varValue; } โดยที่ modifier เป็นคีย์เวิร์ดที่กำหนดคุณสมบัติการเข้าถึงเมธอด return_type เป็นชนิดของข้อมูลที่เมธอดจะส่งค่ากลับ ในกรณีที่ไม่มีการส่งค่ากลับ ให้กำหนดเป็น void MethodName เป็นชื่อเมธอด parameter เป็นตัวแปรที่ใช้ในการรับข้อมูล method_body เป็นชุดคำสั่งการทำงานของเมธอด varValue เป็นค่าที่ต้องการส่งค่ากลับ ในกรณีที่กำหนดให้ return_type เป็น void จะไม่มีคำสั่ง return

  12. การประกาศออบเจ็กต์ ClassNameObjectName; และสามารถสร้างออบเจ็กต์ได้ตามรูปแบบดังนี้ ObjectName = new ClassName(); หรือ ClassNameObjectName = new ClassName(); โดยที่ ClassNameเป็นชื่อของคลาสที่ใช้สร้างออบเจ็กต์นั้น ObjectName เป็นชื่อออบเจ็กต์ที่ประกาศใช้งาน

  13. การเข้าถึงสมาชิกของคลาสการเข้าถึงสมาชิกของคลาส ObjectName.AttributeName; โดยที่ ObjectName เป็นชื่อออบเจ็กต์ AttributeName เป็นชื่อแอตทริบิวต์ที่ต้องการใช้งาน ObjectName.MethodName ([argument]);  หรือ dataTypeMethodValue = ObjectName.MethodName ([argument]); โดยที่ ObjectName เป็นชื่อออบเจ็กต์ MethodNameเป็นชื่อเมธอดที่ต้องการใช้งาน argument เป็นค่าที่ต้องการส่งผ่านไปให้เมธอดที่ต้องการใช้งาน dataTypeเป็นชนิดข้อมูลของเมธอดที่มีการคืนค่า MethodValueเป็นตัวแปรที่ใช้เก็บค่าที่ได้จากการคืนค่าของเมธอด

  14. Modifier ในภาษา Java (1) • Non Access modifier คือคีย์เวิร์ดที่ใช้กำหนดคุณสมบัติอื่นๆ ที่ไม่ใช่ระดับการเข้าถึงข้อมูลของคลาสหนึ่ง ๆ เช่น static ใช้เป็นคีย์เวิร์ดสำหรับกำหนดให้แอตทริบิวต์หรือเมธอดใดๆ แอตทริบิวต์ที่เป็น static ควรมีคุณสมบัติดังนี้ • แอตทริบิวต์นั้นถูกสร้างขึ้นครั้งแรกเพียงครั้งเดียว • แอตทริบิวต์นั้นถูกเรียกใช้บ่อย ๆ และถูกเรียกใช้จากหลายออบเจ็กต์ เมธอดที่เป็นแบบ static จะมีคุณสมบัติดังนี้ • เมธอดนั้นถูกเรียกใช้งานได้ตลอดเวลาที่อยู่ภายในขอบเขตของคลาส • เมธอดนั้นถูกเรียกใช้จากคลาสอื่นผ่านชื่อคลาสได้ โดยไม่ต้องใช้ออบเจ็กต์ final ใช้เป็นคีย์เวิร์ดสำหรับกำหนดให้แอตทริบิวต์หรือคลาสใดๆ • แอตทริบิวต์นั้นจะไม่สามารถถูกเปลี่ยนแปลงค่าได้ ตลอดการทำงานของโปรแกรม • คลาสนั้นจะไม่อนุญาตให้คลาสอื่นมาสืบทอดคุณสมบัติได้

  15. Modifier ในภาษา Java (2) • Access modifier คือ คีย์เวิร์ดที่ใช้กำหนดระดับการเข้าถึงข้อมูล เพื่อป้องกันการเปลี่ยนแปลงข้อมูลภายในคลาส • ระดับของ access modifier มี 4 ระดับ คือ public สามารถเข้าใช้งานได้จากทุกคลาส private สามารถเข้าใช้งานข้อมูลภายในคลาสเดียวกันเท่านั้น protected สามารถเข้าใช้งานข้อมูลภายในคลาสเดียวกันและ คลาสที่สืบทอดกัน package สามารถเข้าใช้งานข้อมูลภายในคลาสเดียวกันและ คลาสอื่นที่อยู่ภายในแพ็คเกจเดียวกัน

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

  17. ระดับการใช้งานแบบ public • เป็นการกำหนดแอตทริบิวต์หรือเมธอดที่ต้องการ ให้สามารถเรียกใช้ได้จากคลาสใด ๆ

  18. ระดับการใช้งานแบบ private • เป็นการกำหนดแอตทริบิวต์หรือเมธอดที่ต้องการ ให้สามารถเรียกใช้ได้จากคลาสเดียวกันเท่านั้น ไม่อนุญาตให้คลาสอื่นเรียกใช้งาน

  19. ระดับการใช้งานแบบ protected • เป็นการกำหนดแอตทริบิวต์หรือเมธอดที่อนุญาตให้คลาสที่มีความสัมพันธ์จากคลาสแม่สู่คลาสลูกใช้งานเท่านั้น ไม่อนุญาตให้คลาสอื่นเรียกใช้ได้

  20. ระดับการใช้งานแบบ package • เป็นการกำหนดแอตทริบิวต์หรือเมธอดที่ต้องการใช้งานในคลาสเดียวกันหรือคลาสที่อยู่ในแพ็คเกจเดียวกัน • ไม่สามารถเรียกใช้จากคลาสที่อยู่ต่างแพ็คเกจกันได้ • คลาสที่อยู่ในแพ็คเกจเดียวกันหมายถึงคลาสที่อยู่ในโฟลเดอร์เดียวกัน

  21. แพ็คแกจและการใช้งาน • แพ็คแกจเป็นการจัดหมวดหมู่ของคลาสเพื่อให้เป็นระเบียบและง่ายต่อการเรียกใช้งาน • เปรียบได้กับโฟลเดอร์ที่มีไว้รวบรวมคลาสให้อยู่ด้วยกัน โดยใช้ การตั้งชื่อแบบโครงสร้างต้นไม้ ซึ่งมีเครื่องหมาย ”.” คั่น • ตัวอย่าง เช่น Tax_Calculation.tax หมายถึง คลาส tax อยู่ในแพ็คเกจTax_Calculation

  22. ตัวอย่างโปรแกรมที่มีการใช้แพ็คแกจ (1) • การอ้างถึงคลาสที่อยู่ในแพ็คแกจเดียวกัน

  23. ตัวอย่างโปรแกรมที่มีการใช้แพ็คแกจ (2) • การอ้างถึงคลาสจากแพ็คแกจอื่น

  24. แพ็คแกจพื้นฐานของภาษาจาวาแพ็คแกจพื้นฐานของภาษาจาวา • java.utilเป็นคลาสที่ใช้จัดการเกี่ยวกับวันเวลาและคลาสอรรถประโยชน์อื่นๆ • java.applet เป็นคลาสสำหรับใช้สร้างจาวาแอพเพลต • java.awt และjavax.swingเป็นคลาสที่ใช้สร้างส่วนติดต่อกับผู้ใช้แบบกราฟิก

More Related