User Tools

Site Tools


Sidebar


Introduction


Basic Tutorials


Advance Tutorials


Useful Techniques


Examples

  • Simple Pipe Weight Calculator
  • Unit Convertor

Sidebar

tutorial:class

This is an old revision of the document!


Class

คือ Structural Type ชนิดหนึ่ง เป็น Data Type ที่มีทั้ง Field, Method และ Property เหมือนกับ Object แค่มีรายละเอียดที่ซับซ้อนมากกว่า ปัจุบัน Class ถูกใช้อย่างแพร่หลายภายใต้การเขียนโปรแกรมเชิงวัตถุ (Object Oriented Programming) เพราะความสามารถที่มีมากกว่า 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 ด้วยเช่นกัน
  • Class มี Access Modifier มากกว่า Object ซึ่งมีรายละเอียดดังนี้

^ Access Modifier ^ Descriptions ^

private มองเห็นได้เฉพาะที่อยู่ใน Unit เดียวกันกับ Class นี้เท่านั้น
protect มองเห็นได้เฉพาะ Derived-Class เท่านั้น
public มองเห็นได้จากทุกที่ที่ uses Unit นี้
published เหมือนกันกับ Public แต่จะสร้าง Run Time Type Information (RTTI) ด้วย
tutorial/class.1548639940.txt.gz · Last modified: 2019/01/28 08:45 by admin