User Tools

Site Tools


tutorial:oop

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
tutorial:oop [2018/12/25 10:50]
admin
tutorial:oop [2019/01/17 07:33]
admin
Line 9: Line 9:
  
 =====OOP มีอะไรบ้าง===== =====OOP มีอะไรบ้าง=====
-โดยทั่วไป หลักการ OOP ในหลายๆภาษาจะคล้ายคลึงกัน แตกต่างกันเพียงแค่ Syntax เท่านั้น โดยหลักการดังกล่าว ​มักจะประกอบด้วยส่วนต่างๆดงต่อไปี้ +โดยทั่วไป หลักการ OOP ในหลายๆภาษาจะคล้ายคลึงกัน โดยหลักการดังกล่าวได้ถูกหลอหลอมรมกันจนลายมาเป็น ​Class และ Object นั่นเอง ​อธิบยไ้แบบสั้นๆง่ายๆดังนี้ (เองจก Class และ Object คล้ายัน ​เนื่องจากเกิดจากการ OOP เหมือัน ​นันจะขอนำแค่ Class มาวอย่)
-====1. Class and Instance==== +
-หาเรจำเป็นต้องสร้งโค๊เกี่ยวกัอะไรสักอย่างหนึ่ง ​กตวอย่าง เช่น รถยนต์ โดยท่รถยต์ทีเรสรางขึ้นมานั้น มีหลายัน ​งจะลำบาก่ใช่น้อยที่ะต้องมเขียนโค๊ดสำถยนต์เหล่านัไปทีละตวจหมด ปญหาเหล่าี้จะดไป หากเรารู้จกกรเขียน Class และ Object(Instance\\ \\+
  
-**Class** ​คือ ​ต้นแบบ เปรียบเสมือนการออแบบรถยน์ว่าควรประกบไปดวยคุณสมบัติรบ้าง ช่น โครงสร้าง เครื่องยนต์ ช่าง รบบ่งกำง ตัวง เป็ต้น ทั้งหมดที่กล่าวมานี้ ​ราเียกว่า Property แค่นั้นยม่พอ รถยนตควรจะมีความสามารถไรบง นั่นือ ​ขับได้ ​วิ่งไปมาวยความรวดเ็วได้ เบรคได้ ​ราเรียสิ่งนว่า Method ​+====1. Encapsulation==== 
 +คือ การจำัดกาเข้าึง Field, Method และ Property ​ต่างๆ ขง Class นันๆ เพื่อไม่ใหเกิดกเรียกใช้งานจากภายนอกอยไมเหมาะสม ารจดการเข้านที่นี้คือารใส่ Access Specifier เหล่านี้ ​คือ Private, Protected, Public และ Published สำหรับรายละียดสมารถอได้จากหวขอถป  
 +====2. Inheritance==== 
 +คือ การถ่าทอด สืบต่อ เช่น Class B สืบ่อความสามาถมาจาก Class A จะทำให้ ​ Class B สาารถทำทุกอย่างท่ Class A ทำได้  
 +====3. Polymorphism==== 
 +คือ การเปลี่ยนรูปร่าง เช่น หาก Class B สืบต่อความสามารถมาจาก Class A จทำให้ Class B ถูกมอาเป็น Class B หรือ ​Class A ก็ได้ในขณะเียกัน 
 +====4. Overriding==== 
 +คือ การปรับเปลี่น เช่น หาก Class B สืบต่อความสามาถมาจาก Class A แล้ว สำหบ Class B เาสามารถปรับเปลี่ยนวามสามารถที่ได้รับมาจาก ​Class A เพือให้ทำไดเหมะสมขึ้น
  
-**Object(Instance)** คือ ผลิตภัณท์ที่เกิดจากต้นแบบ (Class) เช่น เราผลิตรถยนต์ขึ้นมาใช้งานจริง 5 คัน ซึ่งใน 5 คันนี้ อาจมี Property ที่ต่างกันไป ​ แต่ทุกคันมี Method ที่เหมือนกัน เราเรียกรถยนต์เหล่านี้ว่า Object หรือ Instance เป็นต้น แต่เนื่องจากคำว่า Object มีใช้ในภาษา Pascal เช่นกัน และเป็นคำเฉพาะซึ่งหมายถึงการสร้างวัตถุที่เป็นต้นแบบขึ้นมาเหมือนกัน (คล้าย Class) ดังนั้นต่อไปนี้จะขอใช้คำว่า Instance แทน 
  
-**__หมายเหตุ__** - **Object** สำหรับภาษา Pascal หมายถึงการสร้างวัตถุที่มีทั้งคุณสมบัติ(Property) และกระบวนการ (method) เหมือนกันกับ Class ขึ้นมา เพียงแต่ Object จะช้งาน Ram บน Stack ไม่ใช่ Heave เหมือนดัง Class ดังนั้นมองอีกอย่างหนึ่ง Object เปรียบเสมือน Record ที่มี Property กับ Method นั่นเอง หรือ ที่เรียกว่า Advance Record \\ 
-ในโปรแกรม Turbo Pascal สมัยก่อน Object ถูกใช้ทำหน้าที่เหมือนกันกับ Class ในสมัยนี้ ​ แต่ต่อมาภายหลัง เมื่อมีการเปิดตัว Delphi จึงได้มีการคิดค้น Class ขึ้นมาเพื่อใช้งานแทน Object แต่อย่างไรก็ตาม Object ก็ยังเป็นที่นิยมใช้กันมาปกติจนถึงปัจจุบัน 
-สิ่งที่แต่ต่างกัน ระหว่าง Class กับ Object คือ 
-  *Object ใช้หน่วยความจำแบบ Stack ส่วน Class ใช้หน่วยความจำแบบ Heave นั่นทำให้ทุกครั้งที่มีการสร้าง Instance จาก Class ขึ้นมาใช้งาน จำเป็นต้องมีการกำจัด Instance เมื่อใช้งานเสร็จเสมอ เพื่อไม่ให้เกิดปัญหา Memory Leak 
-  *Object ใช้การอ้างอิงตัวแปรแบบ Value ส่วน Class ใช้การอ้างอิงตัวแปรแบบ Reference เพื่อให้เห็นภาพ ขอยกตัวอย่าง หากให้ A,B เป็น Object เมื่อใช้คำสั่ง B:=A ; จะหมายถึง มี B เกิดขึ้นมาอีกหนึ่งตัวซึ่งเกิดจากการคัดลอก A ผลก็คือหากเราทำอะไรกับ B ก็จะไม่ส่งผลกับ A เพราะเป็นคนละตัวกัน แต่หากเราให้ A,B เป็น Instance ของ Class เมื่อใช้คำสั่ง B:=A ; จะกลายเป็นว่า B อ้างอิงไปที่ A ไม่ได้เกิดการคัดลอกใดๆ ทีนี้หากเราทำการเปลี่ยนแปลง B จะหมายถึงการเปลี่ยนแปลง A ด้วยเช่นกัน 
- 
-====2. Encapsulation==== 
-====3. Inheritance==== 
-====4. Polymorphism==== 
-====5. Overriding==== 
-====6. Overloading==== 
tutorial/oop.txt · Last modified: 2019/01/17 07:33 by admin