ออบเจ็ค

ในก่อนหน้านี้ คุณได้เรียนรู้วิธีการสร้างคลาสในภาษา C# ซึ่งเป็นพื้นฐานที่สำคัญในภาษา C# ในบทนี้คุณจะได้เรียนรู้เกี่ยวกับการนำคลาสมาสร้างออบเจ็ค คลาสจะสามารถทำงานได้ต้องนำมาสร้างออบเจ็ค

ออบเจ็ค คืออะไร

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

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

ต่อไปมาดูตัวอย่างการสร้างออบเจ็คจากคลาสในภาษา C#

ClassName indentifier = new ClassName();
ClassName2 indentifier2 = new ClassName2(param1, param, ...);

ClassName3 indentifier3;
indentifier3 = new ClassName3();

การสร้างออบเจ็คในภาษา C#

ในการที่จะสร้างออบเจ็ค เราจะขอยกตัวอย่างคลาสง่ายซึ่งจะเป็นคลาสของรูปสี่เหลี่ยมในสองมิติ โดยมีโค้ดดังนี้

class Square {
public string name;
private int width;
private int height;

public void SetDimension (int w, int h) {
width = w;
height = h;
}
public int CalculateArea () {
return width * height;
}
}

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

using System;

class ObjectExample
{
static void Main(string[] args)
{
Square a = new Square();
a.name = "Paper";
a.SetDimension(8, 11);

Square b = new Square();
b.name = "Computer Screen";
b.SetDimension(16, 9);

Console.WriteLine("Object " + a.name + " has area = " + a.CalculateArea() + " in^2");
Console.WriteLine("Object " + b.name + " has area = " + b.CalculateArea() + " in^2");
}
}

class Square {
public string name;
private int width;
private int height;

public void SetDimension (int w, int h) {
width = w;
height = h;
}
public int CalculateArea () {
return width * height;
}
}

จากตัวอย่างด้านบนเป็นการนำคลาส Square มาสร้างออบเจ็ค โดยออบเจ็คแต่ละอันนั้นจะเป็นอิสระต่อกัน แต่มีรูปแบบและคุณสมบัติเดียวกัน จากตัวอย่างเราได้สร้างออบเจ็คขึ้นมาสองอัน โดยการกำหนดค่าความกว้างและความยาวของมันผ่านเมธอด SetDimension เพราะว่าเราจะได้กำหนดการเข้าถึงของตัวแปรเป็นแบบ privateจึงไม่สามารถกำหนดโดยตรงเหมือนกับตัวแปร name ที่เป็นแบบ public ได้ และเราใช้เมธอด CalculateArea เพื่อคำนวณหาพื้นที่ของรูปสี่เหลี่ยมดังกล่าว

จากตัวอย่างด้านบนจะได้ผลการทำงานของโปรแกรมดังนี้

Object Paper has area = 88 in^2
Object Computer Screen has area = 144 in^2

การใช้คำสั่ง static

คำสั่ง static เป็นคำสั่งที่ใช้กำหนดให้เมื่อมีการประกาศตัวแปรหรือฟังก็ชัน โดยจะสามารถเรียกใช้จากที่ใดก็ได้ ถ้าหากคลาสนั้นเป็น public คลาส สำหรับตัวแปรที่อยู่ในคลาสที่มีการสร้างออบเจ็คนั้น ทุกออบเจ็คจะใช้ค่านี้ร่วมกันหมด มาดูตัวอย่าง

public static string name;

จากตัวอย่างถ้าเราสร้างตีวแปร Name เป็นแบบ static เมื่อทำการกำหนดค่าให้กับตัวแปร Name จากออบเจ็คใดก็ตาม ค่าของทุกออบเจ็คจะเปลี่ยนเป็นค่าล่าสุดทันที

การใช้คำสั่ง this

คำสั่งที่สำคัญในการทำงานเกี่ยวกับออบเจ็ค ก็คือคำสั่ง this คำสั่งนี้ใช้สำหรับการอ้างถึงค่าของคลาสปัจจุบันที่กำลังเรียกใช้อยู่ใน มาดูตัวอย่าง

class Square {
public string name;
private int width;
private int height;

public void SetDimension (int width, int height) {
this.width = width ;
this.height = height;
}

public int CalculateArea () {
return width * height;
}
}

จากตัวอย่างให้สังเกตุชื่อตัวแปรในฟังก์ชัน SetDimension ซึ่งใช้ชื่อที่เหมือนกันกับสมาชิกของคลาส ดังนั้นการใช้คำสั่ง this เป็นการหมายถึงตัวแปรในคลาสปัจจุบันที่ถูกคำสั่งเรียกใช้อยู่ ประโยชน์ของมันคือใช้เมื่อคุณต้องการใช้ชื่อของตัวแปรที่เหมือนกัน เพื่อให้ง่ายต่อการจำ หรือในอีกกรณีหนึ่งจะใช้กับการทำงานของคลาสที่มีการสืบทอด

ในบทนี้ คุณได้เรียนรู้วิธีการนำคลาสมาสร้างออบเจ็คเบื้องต้น และรู้จักกับคำสั่งที่สำคัญเกี่ยวกับออบเจ็คในภาษา C#


บทความเกี่ยวกับ ออบเจ็ค

คลาสและออบเจ็ค ในภาษา Java

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

ออบเจ็ค ในภาษา Visual Basic

ในบทก่อนหน้า คุณได้เรียนรู้เกี่ยวกับการสร้างคลาสไปแล้ว ในบทนี้คุณจะได้เรียนรู้เกี่ยวกับการนำคลาสมาสร้างออบเจ็คในภาษา Visual Basic ออบเจ็ค (objects) คือตัวแปรที่...

คลาสและออบเจ็ค ในภาษา C++

ในการเขียนโปรแกรมเชิงวัตถุ คลาสเป็น program-code-template สำหรับสร้างออบเจ็คในภาษา C++ ให้เราสามารถสร้างคลาสที่มีแนวคิดขยายมากจากโครงสร้างข้อมูล คลาสสามารถถูกก...

ออบเจ็ค ในภาษา PHP

ในบทนี้ คุณจะได้เรียนเกี่ยวกับออบเจ็คในภาษา PHP เราจะนำคลาสที่ได้สร้างไว้ในบทก่อนหน้ามาสร้างเป็นออบเจ็คเพื่อใช้งาน ออบเจ็ค (Object) คือตัวแปรประเภทหนึ่งที่สร้าง...