Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Introduction to Object-Oriented Programming

No description
by

Jirang Kumnuanta

on 26 July 2018

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Introduction to Object-Oriented Programming

ฝึกปฏิบัติการเขียนโปรแกรมเชิงอ็อบเจกต์ คลาส อ็อบเจกต์ ชนิดข้อมูลนามธรรม การรับคุณสมบัติถ่ายทอด การห่อหุ้ม ภาวะพหุสัณฐานและการนำของเดิมมาใช้
ใหม่ กระบวนทัศน์การพัฒนาซอฟต์แวร์เชิงอ็อบเจกต์ การวิเคราะห์ ออกแบบ และประยุกต์ใช้งานระบบงานเชิงอ็อบเจกต์
COM3302
การโปรแกรมเชิงวัตถุ

โดย จีรัง คำนวนตา
คำอธิบายรายวิชา
กระบวนทัศน์การเขียนโปรแกรม
(Programming paradigm)
กลุ่มของชุดคำสั่งซึ่งบอกคอมพิวเตอร์ว่าต้องทำอะไรบ้างในการแก้ปัญหา
กระบวนการสร้างสรรค์ในการสั่งงานให้คอมพิวเตอร์ทำงานตามที่ต้องการ
Programming
ปัญหาการเขียนโปรแกรมในอดีต
Procedural paradigm

เป็นสไตล์การเขียนโปรแกรมโดยเขียนคำสั่งที่มีลำดับต่อเนื่องกันไป โดยอาจแบ่งกลุ่มโค๊ตออกเป็นฟังก์ชัน (หรือ โพซีเยอร์) เป็นสไตล์การเขียนโค๊ตที่แพร่หลายมายาวนาน
ตู้ขายเครื่องดื่มอัตโนมัติ

วิธีการคิดแบบการเขียนโปรแกรมแบบคำสั่ง
เมื่อมีการหยอดเหรียญเข้าตู้
1. ตรวจสอบจำนวนเหรียญและชนิดของเหรียญ
2. ตรวจสอบจำนวนน้ำกระป๋องที่มีอยู่ในตู้
3. แสดงผลชนิดของน้ำที่สามารถเลือกซื้อได้
4. รับผลการเลือกชนิดน้ำ
5. ส่งน้ำที่เลือกออกมาจากช่อง
6. จัดเก็บเงินเข้าระบบ
7. หากมีเงินทอน ให้ทอนเงินที่เหลือ ที่ช่องรับเงินทอน
unstructured
structured
ความซับซ้อน เมื่อโปรแกรมมีขนาดใหญ่

การใช้ตัวแปรส่วนกลาง (global variable)

การเปลี่ยนแปลงชนิดหรือโครงสร้างของข้อมูลทำได้ยาก

กำหนดชนิดข้อมูลใหม่ทำได้ยาก

แนวคิดในการเขียนโปรแกรมไม่สัมพันธ์กับโลกที่เป็นจริง

ข้อจำกัดในการเขียนโปรแกรมเชิงโครงสร้าง
Object-oriented programming
คืออะไร?
OOP ดีอย่างไร ทำไมต้องศึกษา?
ในปีค.ศ.1969 Dr. Kristin Nygaard ชาวนอร์เวย์พัฒนาภาษา Simula-67

ช่วยให้ programmer สามารถเปลี่ยนแปลงโปรแกรม ที่เขียนมาแล้วได้ง่ายขึ้นนำโปรแกรมกลับไปใช้ใหม่ได้โดย อาจแก้ไขเพียงเล็กน้อย (Reusable)

ตัวอย่างภาษาที่เขียนแบบเชิงวัตถุ
เช่น C++, C#, java, python, etc.

OOP
เป็นแนวคิดการเขียนโปรแกรมให้ในรูปแบบของวัตถุ (Object) ซึ่งมีโครงสร้างที่ประกอบไปด้วยข้อมูล (Data) และกระบวนการ (Method) ซึ่งจะมีการทำงานกับวัตถุอื่นๆ

ลดความซับซ้อน และซ้ำซ้อนของ code
ข้อมูลมีความปลอดภัยมากขึ้น
การนำ code กลับมาใช้ใหม่ หรือปรับปรุง code ทำได้ง่ายขึ้น
การปรับเปลี่ยน ขยายระบบงานทำได้ง่ายขึ้น
ภาษาสมัยใหม่ล้วนรองรับการเขียน โปรแกรม แบบ OOP
Object-oriented programming
การเขียนโปรแกรมเชิงวัตถุ
object & Class
Object คืออะไร?
เป็นการรวมข้อมูลและฟังก์ชั่น (function) ที่ดำเนินการต่อข้อมูลนั้นเข้าไว้ด้วยกันเป็นหน่วยเดี่ยวๆ คือ วัตถุ (object)

วัตถุแต่ละตัวจะเป็นอิสระต่อกัน มีคุณสมบัติประจำตัว และความสามารถในการทำงานที่แตกต่างกัน

การเรียกใช้งานข้อมูลต่างๆ ของวัตถุ จะต้องเรียกผ่าน ฟังก์ชั่นของวัตถุนั้น

programmer ไม่จำเป็นต้องทราบรายละเอียดคำสั่ง ภายใน Object แต่ทราบเพียงแค่ ถ้านำเอา Object นั้นมาใช้แล้วผลลัพธ์ที่ได้จะเป็นอย่างไรก็พอแล้ว

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

Object ประกอบด้วย
คุณลักษณะ (attribute) หรือข้อมูล (data)
พฤติกรรม (behavior) หรือ เมทธอด (method)

Class คืออะไร?
class เปรียบเสมือนพิมพ์เขียวของ Object
กำหนดคุณลักษณะ (Attribute) และ พฤติกรรม (Method) ของ Object
Object จะถูกสร้างมาจาก Class
เรียกได้ว่า วัตถุ (Object) เป็น อินแสตนซ์ (Instance) ของคลาส (Class)
สามารถสร้าง Object ได้หลายตัวจาก Class หนึ่งๆ
เช่น Class ชื่อ Car อาจสร้าง Object ชื่อ polo, mini, หรือ beetle ได้

abstraction
แสดงเฉพาะข้อมูล หรือลักษณะในการทำงาน ที่เพียงพอต่อการแก้ปัญหาให้ผู้ใช้งานเห็นเท่านั้น

ใช้ Interface / Abstract Class เมื่อต้องการวางกรอบ ขอบเขตคร่าวๆ เพื่อใช้ subclass เอาทำ implement การทำงานภายในต่อได้เอง
4 แนวคิดหลักของ oop
วิธีการคิดแบบการเขียนโปรแกรมเชิงวัตถุตัวอย่างตู้ขายเครื่องดื่มอัตโนมัติ

ตู้ขายเครื่องดื่มอัตโนมัติ ประกอบด้วยส่วนประกอบต่าง ๆ ได้แก่ หน่วยตรวจสอบ และจัดการเรื่องเงิน
หน่วยจัดการเครื่องดื่ม
หน่วยแสดงผล และรอรับคำสั่ง

หน่วยตรวจสอบและจัดการเรื่องเงิน
มีข้อมูลเกี่ยวกับเงินที่ได้รับ และเงินที่มีอยู่ในระบบ สามารถรับและตรวจสอบเงินที่หยอดเข้ามาได้ และทอนเงินได้

หน่วยจัดการเครื่องดื่ม
มีข้อมูลชนิดของเครื่องดื่ม จำนวนเครื่องดื่ม สามารถจัดเตรียมชนิดเครื่องดื่มที่พอกับเงินที่หยอด และสามารถจ่ายเครื่องดื่มออกมาจากตู้ได้

หน่วยแสดงผลและรอรับคำสั่ง
มีหน้าที่รอรับคำสั่ง และแสดงผลเงินที่หยอดเข้ามา


encapsulation
มัดรวม data กับ methods ซึ่งทำงานกับ data เหล่านั้นไว้เป็นกลุ่มเดียวกัน

ช่อนข้อมูลไม่ให้ภายนอกเห็น (Information hiding) / ป้องกันการเข้าถึงข้อมูลจากภายนอก

ซ่อนรายละเอียดที่ไม่เกี่ยวข้อง ลดความซับซ้อนในการทำงาน
การใช้งานจริง ทำโดยตั้งค่า private ให้กับข้อมูล และตั้งค่า public ให้กับ method ในคลาสเพื่อการอ่านค่าหรือตั้งค่า data โดยเฉพาะ

inheritance
การสร้างคลาสใหม่จากคลาสเดิมที่มีอยู่แล้วโดยมีการถ่ายทอดคุณสมบัติของคลาสหลักมา

class ลูกสามารถปรับเปลี่ยน / เพิ่มเติม สิ่งต่างๆจาก class แม่ได้
polymorphism
overriding
overloading
ตัวอย่าง Oop กับการสร้าง app มือถือ
Full transcript