พื้นฐาน OOP ทั่วไปมั้ง 2 (หลักการ OOP หรือการเขียนโปรแกรมเชิงวัตถุ)
posted on 09 Jun 2009 15:48 by skynovice in Microsoft-XNA-Game-Studioการเขียน โปรแกรมมันมีอยู่ 2 แบบครับ คือแบบโครงสร้าง ก็คือ ยาวไปเรื่อยๆ และแบบวัตถุ ก็คือสิ่งที่ผมจะมาอธิบาย มันเหมือนกับการเขียน แบบเอานี้มาบ้าง เอานั้นมาบ้าง เอามารวมกัน เอามาปรับปรุงต่อ โดยไม่ต้องเขียนซ้ำๆ ซากๆ ...อ่าวงงใหญ่ เอาเป็นว่า ดูต่อไปครับ
เช่น เราอยากสร้างรถยนต์ แบบที่ไม่เหมือนกันเลยอะ 20 คัน แต่ก็มีส่วนที่มันเหมือนกันอยู่ด้วย เราก็สร้างเลย class car สร้างเส็ด แล้วเอาอะไรใส่ลงไปใน class car หละ ก็เอาสิ่งที่รถทุกๆคันควรจะมีใส่เอาไว้ในนี้ครับ เช่น มีล้อ มีประตู มีพวงมาลัย มีเกียร์ เป็นต้น พอเราได้ class car ที่น่าจะโอเคแล้ว ทีนี้เราก็มาสร้างรถแต่ละคันกันครับ เช่น สร้าง class keng (เอาเป็นรถเก๋งละกัน) ก็ทำการสืบทอด class car มาเลยครับ พอสืบทอกเสร็จ เราได้รถและสิ่งที่รถทั่วไปควรจะมีมาละ ทีนี้เราก็มาเพิ่มแค่เอกลักษณ์ของรถเก๋งคันนี้กันครับ เช่นสีแดง ติด Nitus เป็นต้น ถ้าเราจะสร้างรถอีก ก็สืบทอดมาอีก โดยไม่ต้องมานั่งเขียนใหม่ให้แต่ละคันครับ นี่คือแบบจำลองคร่าว ซึ่งตอนใช้จริงอาจจะมีอะไรที่มันสลับซับซ้อนมากมายกว่านี้ไปอีก ก็ค่อยว่ากันอีกทีครับ
ที่นำเสนอออกไปแบบนี้ ก็แค่อยากให้เห็นหลักการณ์ การเขียนโปรแกรมเชิงวัตถุ ว่ามันง่าย(หรือปล่าวหว่า) เป็นระบบ ระเบียบ และลดจำนวน code ที่เราจะเขียนขึ้นได้มากเพียงไรก็เท่านั้นเอง
และมีศัพที่ให้อยากจะจำไว้ ดังนี้
1. class คือสิ่งที่สร้างขึ้นมาใช้ในโปรแกรม แต่มันจะยังใช้งานไม่ได้ หรือไม่สามารถใช้งานได้
2. object คือสิ่งที่สร้างขึ้นมา จาก class เพื่อเอาไว้ใช้งาน เพราะเราใช้งาน class เลยไม่ได้
3. Instance อธิบายคือ object ที่สร้างขึ้นจาก class ใดๆ ถือว่าเป็น Instance ของ class นั้นๆ
สรุปข้างบน เป็นภาษาคนได้ว่า class ก็คือต้นแบบ หรือวิญญาณ ไม่มีตัวตน ถ้าอยากจะใช้งาน จะต้องสร้าง Instance ของมันขึ้นมาก่อน ซึ่งก็คือ object ที่สามารถที่จะจับต้องได้ และใน class หนึ่งๆ สามารถมี Instance กี่อันก็ได้ แล้วแต่ว่าเราอยากได้แบบ class กี่อัน ก็คือสามารถสร้าง object ได้หลายอัน จาก class เดียว
ต่อไปก็คือส่วนประกอบข้อง object นะครับ (อ่านหนังสือตามตอนเขียน แต่เป็นเรื่องที่น่าจะรู้กันอยู่ละ)
ก็คือ 1. คุณลักษณะ เช่นรถ 1 คัน ประกอบด้วยอะไรบ้าง เปรียบก็เหมือนกับ ตัวแปรทั่วไปนั่นหละ
2. พฤติกรรม ก็คือรถนี้มันทำอะไรได้บ้างละ เปรียบก็เหมือนกับ function นั่นหละ
และนี่คือตัวอย่าง Code นะครับ (ลอกตามหนังสือละกัน)
using System;
namespace TimeClass
{
public class Time
{
private int year;
private int month;
private int Date;
private int Hour;
public void Display()
{
Console.WriteLine("แสดงเวลา");
}
}
}
อธิบาย สีแดง ก็คือ คุณลักษณะ ส่วนสีชมพู ก็คือ พฤติกรรม ครับ
ส่วนอื่นๆ ที่เขียนไป ก็ยังไม่ต้องไปสนใจครับ รู้แค่นี้ก่อน