คลาส

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

C# Classes

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

คุณได้เห็นคลาสมาในบทก่อนหน้าแล้วในบทเรียนนี้ เราจะแสดงให้คุณเห็นและเข้าใจอย่างละเอียดในบทนี้ และการสร้างคลาสในภาษา C# นั้นจะมีรูปแบบดังนี้

class identifier {
// class members and specifications
}

ในการสร้างคลาสนั้น เราจะใช้คำสั่ง class และ identifier นั้นเป็นชื่อของคลาสที่จะสร้างขึ้น หลักการในการตั้งชื่อคลาสนั้นเหมือนกับหลักในการตั้งชื่อตัวแปร แต่ในการประบัติที่ดี คุณควรจะเริ่มต้นชื่อของคลาสด้วยตัวพิมพ์ใหญ่เสมอ และเริ่มต้นคำใหม่ด้วยตัวพิมพ์ใหญ่ เช่น Person Car Country เป็นต้น

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

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

class Car {

public static int enegyUserPerRun = 3;
String color;

private float enegy = 10;
public int speed = 0;
private int distant = 0;

public void AddEnegy () {
enegy += 10;
}

public void Run () {
if (enegy < speed * enegyUserPerRun) {
Console.WriteLine("No enough enegy to run.");
} else {
distant += (speed * enegyUserPerRun);
enegy -= enegyUserPerRun;
}
}

public void ShowDistance () {
Console.WriteLine("Distance runned " + distant);
}
}

ในตัวอย่างเราได้สร้างคลาสที่มีชื่อว่า Car ซึ่งเป็นคลาสเกี่ยวกับรถ โดยคลาสนั้นจะมีสมาชิกที่เป็นตัวแปร 5 ตัว และเป็นเมธอด 3 เมธอด

ตัวแปร enegyUserPerRun นั้นเป็นตัวแปรประเภท integer เก็บสำหรับเป็นข้อมูลถึงการใช้พลังงานในการวิ่งและละครั้งของรถ ตัวแปรนี้เป็น static นั่นหมายความว่ารถทุกคันที่สร้างจากคลาสนี้จะใช่ตัวแปรนี้ร่วมกัน และถ้ามีการเปลี่ยนแปลงค่าของตัวแปรนี้ก็จะเปลี่ยนสำหรับทุกออบเจ็คที่สร้างจากคลาสนี้ ตัวแปร color ใช้ในการเก็บสีของรถ ว่ารถคันนี้มีสีอะไร และตัวแปร enegy เป็นตัวแปรในการเก็บพลังงานคงเหลือปัจจุบันของรถ ตัวแปร speed เป็นความเร็วของรถ และตัวแปร distant บอกว่ารถคันนี้วิ่งไปได้ระยะทางเท่าไหร่แล้ว

Class constructor

คอนสตรัคเตอร์ (Constructor) เป็นเมธอดพิเศษในคลาสที่ใช้สำหรับในการกำหนดค่าเริ่มต้นเมื่อได้ทำการสร้างออบเจ็ค คอนสตคัคเตอร์นั้นจะมีชื่อที่เหมือนกับคลาส มีการเข้าถึงเป็นแบบ public และไม่มีส่วนของการ return ค่ากลับ ต่อไปมาดูตัวอย่างการสร้างคอนสตัคเตอร์กับคลาสในภาษา C#

class Car {

public static int enegyUserPerRun = 3;
String color;

private float enegy = 10;
public int speed = 0;
private int distant = 0;

public Car(String c, float e, int s, int d)
{
color = c;
enegy = e;
speed = s;
distant = d;
}


public void AddEnegy () {
enegy += 10;
}

public void Run () {
if (enegy < speed * enegyUserPerRun) {
Console.WriteLine("No enough enegy to run.");
} else {
distant += (speed * enegyUserPerRun);
enegy -= enegyUserPerRun;
}
}

public void ShowDistance () {
Console.WriteLine("Distance runned " + distant);
}
}

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

public Car(String c, int s)
{
color = c;
speed = s;
}

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

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


บทความเกี่ยวกับ คลาส

String ในภาษา Java

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

String ในภาษา Visual Basic

ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับ string ในภาษา Visual Basic เพราะว่า string นั้นมีเนื้อหาและรายละเอียดค่อนข้างมากสำหรับการเขียนโปรแกรม ดังนั้นเราจึงแบ่งเนื้อหา...

String methods ในภาษา Python

ในบทก่อนหน้า เราได้พูดเกี่ยวกับการใช้งาน String ในเบื้องต้นไปแล้ว ในบทนี้ เราจะแนะนำเมธอดและการใช้งานเมธอดในคลาส String ในภาษา Python นั้น String เป็นคลาสมาตรฐา...

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

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

คลาส ในภาษา Visual Basic

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