คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
ความหมายของ OOP
OOP (Object Oriented Programming) เป็นวิธีการเขียนโปรแกรมซึ่งจัดดา เนินการกับกลุ่ม
ของ ออบเจ็กต์ (Object) ที่มีอยู่ในโปรแกรม ออบเจ็กต์ เป็นชนิดของข้อมูลซึ่งประกอบไปด้วยกลุ่มของ ข้อมูล(data)
และกลุ่มของฟังก์ชัน(Function) โดยการใช้ข้อมูลและฟังก์ชันเหล่านี้ แต่ละออบเจ็กต์จะทา งาน 1 งานได้
สมบูรณ์
(ทั้งนี้เนื่องจากตัวออบเจ็กต์เองประกอบไปด้วยข้อมูลและฟังก์ชัน) ออบเจ็กต์ เป็นสมาชิกของ ตัวแปรคลาส (class
variable) มีลักษณะเป็นโมดูล (modularity) ซึ่งประกอบไปด้วย ตัวแปร ชนิดต่าง ๆ ที่สัมพันธ์กัน และ
ประกอบด้วย ฟังก์ชัน ต่าง ๆ โดยที่ คลาส(class) จะห่อหุ้มข้อมูลและฟังก์ชันรวมไว้ด้วยกันมีลักษณะที่เรียกว่า
encapsulation ดังนั้นจึงมีความสะดวกในการใช้งาน สามารถป้องกันส่วนอื่น ๆ ของโปรแกรมไม่ให้เข้าถึงตัว
แปรชนิดโลคอลภายในคลาสได้อย่างดีเยี่ยม ดังนั้น การเขียนโปรแกรมแบบ OOP คือ การสร้างและ/หรือการ
เรียกใช้ออบเจ็กต์ให้ทางานตามที่เราต้องการ ในการเรียกใช้ออบเจ็กต์นั้น เราจะสนใจเฉพาะการทา งานของออบ
เจ็กต็เท่านั้น ไม่จา เป็นต้องสนใจรายละเอียดภายในของออบเจ็กต์ว่าเป็นอย่างไรการใช้ออบเจ็กต์ของโปรแกรมจะมี
ลักษณะคล้ายกับการใช้สิ่งของในชีวิตประจา วันของเรา เช่น การใช้โทรทัศน์ เราสามารถใช้ได้โดยไม่จา เป็นต้องรู้ว่า
ภายในเครื่องโทรทัศน์มี "ส่วนประกอบ" อะไรบ้าง และไม่จา เป็นต้องรู้ว่าแต่ละส่วนประกอบทา งานอย่างไร เราจะรู้
เพียงแค่วิธีใช้ เช่น วิธีเปิด วิธีเปลี่ยนช่อง วิธีปรับเสียง วิธีปรับสี วิธีตั้งเวลา วิธีปิดเครื่อง เป็นต้น ลักษณะของ
โปรแกรมแบบ OOPก็มีลักษณะคล้ายกับการใช้โทรทัศน์ในชีวิตประจา วัน ซึ่งจะได้ศึกษาถึงวิธีการสร้างและ
วิธีการใช้ OOP ต่อไป
คลาสกับ OBJECT
คลาสกับ object เป็นสองสิ่งที่มีความเกี่ยวข้องกันโดยตรง คลาสคือโค้ดที่เราเขียนขึ้นเพื่อทาหน้าที่เป็นพิมพ์เขียวของ
object การสร้าง object จากคลาสเรียกว่าการทา instantiation การสร้าง object จากคลาส เทียบ
ได้กับการทาขนมครกสิงคโปร์ เตาขนมจะมีหลุมหลายหลุม แต่ละหลุมมีลวดลายไม่เหมือนกัน ขนมครกที่ได้จากแต่ละ
หลุมจึงมีรูปร่างต่างๆ กัน คลาสคือหลุมหนึ่งหลุม ขนมครกที่ได้คือ instance ของ object
เราเรียก object หนึ่ง object ว่าหนึ่ง instance เราสามารถสร้าง object ได้หลายๆ instance จากคลาส
เพียงคลาสเดียว จากตัวอย่างขนมครกสิงคโปร์ ในวันหนึ่งๆ แม่ค้าจะทาขนมครกได้เป็นจานวนมากจากหลุมแต่ละ
หลุม ส่วนในภาษา C# หากเราสร้างคลาสหนึ่งคลาส ยกตัวอย่างเช่น เป็นคลาสเพื่อนิยาม node หลังจากนั้นเรา
อาจเขียนโปรแกรมสร้าง binary tree ซึ่งขณะทางานมันอาจจะสร้าง object จากคลาส node ได้หลาย
ล้าน instance ภายในหนึ่งวินาที
การใช้งานคลาสทาได้สองวิธี วิธีแรกคือการนาไปใช้สร้าง object และใช้งานผ่าน object ดังที่อธิบายไปแล้ว อีกวิธี
หนึ่งคือเรียกใช้โดยตรงโดยไม่ต้องสร้าง object เรียกว่า static class แม้การใช้งานคลาสวิธีนี้จะไม่มี
object ทาให้ดูเหมือนไม่เป็นหลักการ OOP แต่ในบางสถานการณ์ก็ถือว่ามีความเหมาะสมดี
การนิยามคลาส
ในภาษาจาวาสามารถนิยามคลาสหรือปีะกาศคลาสขึ้นมาโดยมีรูปแบบดังนี้
[AccessSpecifier] Class Name
{
Members
}
AccessSpecifier เป็นความสามารถในการเข้าถึงคลาสนั้นๆ
class เป็นคีย์เวิร์ดในภาษาจาวาเพท่อใช้ในการประกาศคลาส
Name เป็นชื่อคลาสมี่ประกาศขึ้น
Members เป็นคุณลักษณะหรือเมธอดต่างๆ ของคลาสที่นิยามขึ้น
การสร้างออบเจ็กต์
หลังจากนิยามคลาสขึ้นมาแล้ว ถ้าหากโปรแกรมต้องการใช้งานจะต้องสร้างออบเจ็กต์ขึ้นมา เพื่อบอกว่าออบเจ็กต์เป็นของคลาสใด โดย
จะต้องประกาศออบเจ็กต์ขึ้นมาก่อนซึ่งมีรูปแบบดังนี้
ClassName ObjectName;
การประกาศออบเจ็กต์นี้จะทาให้คอมไพเลอร์รับทราบว่ามีตัวแปร ObjectName แต่จะยังไม่มีหน่วยความจาสาหรับข้อมู,ของ
ออบเจ็กต์ที่ประกาศขึ้น ซึ่งจัต้องสร้างออบเจ็กต์ขึ้นมาก่อนโดยใช้คาว่า new ซึ่งมีรูปแบบดังนี้
objecyName = new ClassName([arguments])
เมืื่อมีการสร้างออบเจ็กต์ขึ้นมาแล้ว สมาชิกของออบเจ็กต์คือสมาชิกของคลาสนั้น ซึ่งได้แก่คุณลักษณะหรือตัวแปรและเมธอดต่างๆ
ออบเจ็กต์จะสามารถเข้าถึงข้อมูลที่เป็นคุณลักษณะหรือเรียกใช้เมธอดได้ไม่ขึ้นกับaccessSpecifier ที่ถูกประกาศไว้ตอน
นิยามคลาส ดดยการเรียกใช้สมาชิกจะทาโดยใช้เครื่องหมายจุด แล้วตามด้วยสมาชิกที่ต้องการเรียกใช้
STATIC
• ตัวแปรและเมท็อดที่เป็น static
• คีย์เวิร์ด static เป็นคีย์เวิร์ดที่ใช้ประกาศหน้าตัวแปรและเมท็อด ความพิเศษของ static คือว่าโดยปกติเวลาจะสร้างอ็อปเจ็คต้องทาการ new อ็อปเจ็คขึ้นมา ตัวแปรอ็อปเจ็คก็จะอ้างอิงไปที่อ็
อปเจ็คที่สร้างขึ้น แล้วก็เอาตัวแปรนี้ไปเรียกใช้ตัวแปร ใช้เมท็อด แต่ถ้าตัวแปรหรือเมท็อดนั้นเป็น static ก็จะทาให้สามารถใช้ตัวแปรหรือเมท็อดนั้นได้เลยโดยไม่ต้องสร้างอ็อปเจ็คมาเรียกใช้
งาน
• สาหรับตัวแปรที่เป็น static นั้น จะทาให้ตัวแปรนั้นเป็นตัวแปรของคลาสไม่ได้เป็นของอ็อปเจ็คใดอ็อปเจ็คหนึ่ง ถ้ามีการเปลี่ยนแปลงขึ้นกับตัวแปร static อ็อปเจ็คอื่นๆทั้งหมดจะมองเห็นการ
เปลี่ยนแปลง
วิธีประกาศ
• สาหรับตัวแปร modifier static ชนิดตัวแปร ชื่อตัวแปร ;
• สาหรับเมท็อด modifier static ประเภทผลลัพธ์ ชื่อเมท็อด( ) { }
• วิธีการเรียกใช้งานเมท็อดที่เป็น static ถ้าอยู่ในคลาสเดียวกันก็ ชื่อ เมท็อด(); แบบนี้ได้เลย แต่ถ้าอยู่คนละคลาสก็ ใช่ ชื่อคลาส.ชื่อเมท็อด static
• เมท็อดที่เป็น static ที่ได้ใช้มาแล้วก็คือ เมท็อด main ใน public static void main(String [] args) เพราะว่า main เป็นเมท็อดสาหรับเริ่มทางาน ดังนั้นต้องสามารถทางาน
ได้เลยโดยไม่ต้องมีอ็อปเจ็คมาเรียกใช้งาน
เมท็อดชื่อ f ในบรรทัดที่ 17 ประกาศเป็น เมท็อด static ดังนั้นในบรรทัดที่ 12 สามารถเรียกใช้เมท็อด f ได้เลย แต่บรรทัดที่ 13 มีการเรียกใช้เมท็อด printlnซึ่งอยู่ในคลาส System ก็ต้องใช้
งานแบบ ชื่อคลาส.เมท็อด
สังเกตว่าเมื่อเอาคาว่า static ออกในบรรทัดที่ 17 จะเกิด error ขึ้นทันทีที่บรรทัดที่ 12 ที่เรียกเมท็อด
ตัวแปร เมท็อดและคลาสที่เป็น final
• คล้ายกับ static คีย์เวิร์ด final ใช้ประกาศหน้าตัวแปร เมท็อดและยังประกาศหน้าคลาสได้ด้วย
– ถ้า final ไปประกาศหน้าตัวแปร ตัวแปรนั้นจะมีค่านั้นตลอดเปลี่ยนแปลงไม่ได้ เรียกว่าเป็นค่าคงที่
– ถ้าอยู่หน้าเมท็อดแล้วคลาสนี้ถูกสืบคุณสมบัติไป เมท็อดนี้จะไม่สามารถเขียนทับแก้ไขได้หรือก็คือไม่สามารถ Overriding ได้
– แต่ถ้าอยู่คลาส คลาสนั้นๆจะไม่สามารถเป็นคลาสแม่ได้เลย คือบางทีไม่ต้องการให้คนเอาอะไรเปลี่ยนทั้งนั้นก็ประกาศคลาสเป็น final เพราะบางทีประกาศเมท็อดเป็น final คลาสลูกก็
เขียนเมท็อดใหม่ขึ้นมาได้ เช่น เราไม่ต้องการเขาเปลี่ยนชื่อ เขาก็เขียนเมท็อดสาหรับเปลี่ยนชื่อใหม่ได้
วิธีประกาศ
• สาหรับตัวแปร final ชนิดตัวแปร ชื่อตัวแปร = ค่าคงที่ ;
• สาหรับเมท็อด modifier final ประเภทผลลัพธ์ ชื่อเมท็อด( ) { }
• สาหรับคลาส modifier final class ชื่อคลาส{ }
CONSTRUCTORS
คือเมธอดพิเศษ ทาหน้าที่กาหนดการทางานต่างๆให้กับออบเจกต์ใหม่ที่เกิดขึ้นจากคาสั่ง new ทันทีโดยอัตโนมัติ หากไม่
กาหนดคอนสตรักเตอร์ ตัวแปลภาษา C# จะสร้างคอนสตรักเตอร์พื้นฐาน (default constructor) ให้เอง
ตัวอย่างต่อไปนี้คือ คอนสตรักเตอร์พื้นฐาน ของคลาส Product public Product() { }
ตัวอย่างการเรียกใช้ default constructor
การส่งออบเจ็กต์ไปยังเมท็อด
ในการเขียนโปรแกรมที่มีการสร้างคลาสขึ้นมาหลายๆคลาสนั้น ออบเจ็กต์ของคลาสหนึ่งสามารถใช้เป็นอาร์กิวเมนต์เพื่อส่งผ่านไป
ยังเมธอดของคลาสอีกคลาสหนึ่งได้
เช่นโปรแกรม Student.Javaเป็นโปรแกรมคลาสสาหรับเก็บข้อมูลนักเรียน ได้แก่ ซื่อและอีเมลล์โดยมีเมท็อดสาหรับกาหนด
และเรียกดูชื่อและอีเมลล์สาหรับใช้งาน
public class Student3 {
private String name;
private String email;
public Student3() {
name = “Unassigned”;
email = “Unassigned”;
}
public String getEmail(){
return email;
}
public String getName(){
return name;
}
public void setEmail(String address){
email = address;
}
public void setName(String studentName){
name = studentName;
}
}
ตัวอย่างการประยุกต์การเขียนโปรแกรมเชิงวัตถุ
เป็นการออกแบบคลาสแล้วนามาเขียนโปรแกรมประยุกต์สาหรับใช้งานจริง โดยอธิบายขั้นตอนสาคัญในการทางานแต่ละขั้นตอน โดยมี
โปรแกรมตัวอย่างการเขียนโปรแกรมสาหรับเข้ารหัสข้อมูลโดยส่งข้อมูลผ่านเข้าไปในเครือข่ายคอมพิวเตอร์ เพื่อความปลอดภัยได้
นาเทคโนโลยีการเข้ารหัสมาใช้ ทาโดยการเลื่อนข้อมูล แต่ถ้าเป็นตัวอักขระตัวสุดท้ายของภาษาอังกฤษการเลื่อนข้อมูลจะกลับมา
เริ่มต้นที่ตัวแรกใหม่
ถ้าหากเป็น 2-shift ข้อมูลจะแทนได้ดังนี้
A แทนด้วย C
B แทนด้วย D
Y แทนด้วย A
Z แทนด้วย B
ถ้าข้อมูลต้นฉบับเป็น “DIZZY” แล้วเข้ารหัสแบบ 2- shift ข้อมูลที่เข้ารหัสแล้วจะเป็น “FKBBA”
จัดทาโดย
• นายวรกานต์ วัลลา เลขที่2 ม.6/3
• นายรัชชานนท์ สุดยอด เลขที่8 ม.6/3
• นายศรัณย์ สุขสว่าง เลขที่9 ม.6/3
• นายวรวุฒิ แก้วสะอาด เลขที่11 ม.6/3
• นายธีรพล กุลวุฒิ เลขที่17 ม.6/3

คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น

  • 1.
  • 2.
    ความหมายของ OOP OOP (ObjectOriented Programming) เป็นวิธีการเขียนโปรแกรมซึ่งจัดดา เนินการกับกลุ่ม ของ ออบเจ็กต์ (Object) ที่มีอยู่ในโปรแกรม ออบเจ็กต์ เป็นชนิดของข้อมูลซึ่งประกอบไปด้วยกลุ่มของ ข้อมูล(data) และกลุ่มของฟังก์ชัน(Function) โดยการใช้ข้อมูลและฟังก์ชันเหล่านี้ แต่ละออบเจ็กต์จะทา งาน 1 งานได้ สมบูรณ์ (ทั้งนี้เนื่องจากตัวออบเจ็กต์เองประกอบไปด้วยข้อมูลและฟังก์ชัน) ออบเจ็กต์ เป็นสมาชิกของ ตัวแปรคลาส (class variable) มีลักษณะเป็นโมดูล (modularity) ซึ่งประกอบไปด้วย ตัวแปร ชนิดต่าง ๆ ที่สัมพันธ์กัน และ ประกอบด้วย ฟังก์ชัน ต่าง ๆ โดยที่ คลาส(class) จะห่อหุ้มข้อมูลและฟังก์ชันรวมไว้ด้วยกันมีลักษณะที่เรียกว่า encapsulation ดังนั้นจึงมีความสะดวกในการใช้งาน สามารถป้องกันส่วนอื่น ๆ ของโปรแกรมไม่ให้เข้าถึงตัว แปรชนิดโลคอลภายในคลาสได้อย่างดีเยี่ยม ดังนั้น การเขียนโปรแกรมแบบ OOP คือ การสร้างและ/หรือการ เรียกใช้ออบเจ็กต์ให้ทางานตามที่เราต้องการ ในการเรียกใช้ออบเจ็กต์นั้น เราจะสนใจเฉพาะการทา งานของออบ เจ็กต็เท่านั้น ไม่จา เป็นต้องสนใจรายละเอียดภายในของออบเจ็กต์ว่าเป็นอย่างไรการใช้ออบเจ็กต์ของโปรแกรมจะมี ลักษณะคล้ายกับการใช้สิ่งของในชีวิตประจา วันของเรา เช่น การใช้โทรทัศน์ เราสามารถใช้ได้โดยไม่จา เป็นต้องรู้ว่า ภายในเครื่องโทรทัศน์มี "ส่วนประกอบ" อะไรบ้าง และไม่จา เป็นต้องรู้ว่าแต่ละส่วนประกอบทา งานอย่างไร เราจะรู้ เพียงแค่วิธีใช้ เช่น วิธีเปิด วิธีเปลี่ยนช่อง วิธีปรับเสียง วิธีปรับสี วิธีตั้งเวลา วิธีปิดเครื่อง เป็นต้น ลักษณะของ โปรแกรมแบบ OOPก็มีลักษณะคล้ายกับการใช้โทรทัศน์ในชีวิตประจา วัน ซึ่งจะได้ศึกษาถึงวิธีการสร้างและ วิธีการใช้ OOP ต่อไป
  • 3.
    คลาสกับ OBJECT คลาสกับ objectเป็นสองสิ่งที่มีความเกี่ยวข้องกันโดยตรง คลาสคือโค้ดที่เราเขียนขึ้นเพื่อทาหน้าที่เป็นพิมพ์เขียวของ object การสร้าง object จากคลาสเรียกว่าการทา instantiation การสร้าง object จากคลาส เทียบ ได้กับการทาขนมครกสิงคโปร์ เตาขนมจะมีหลุมหลายหลุม แต่ละหลุมมีลวดลายไม่เหมือนกัน ขนมครกที่ได้จากแต่ละ หลุมจึงมีรูปร่างต่างๆ กัน คลาสคือหลุมหนึ่งหลุม ขนมครกที่ได้คือ instance ของ object เราเรียก object หนึ่ง object ว่าหนึ่ง instance เราสามารถสร้าง object ได้หลายๆ instance จากคลาส เพียงคลาสเดียว จากตัวอย่างขนมครกสิงคโปร์ ในวันหนึ่งๆ แม่ค้าจะทาขนมครกได้เป็นจานวนมากจากหลุมแต่ละ หลุม ส่วนในภาษา C# หากเราสร้างคลาสหนึ่งคลาส ยกตัวอย่างเช่น เป็นคลาสเพื่อนิยาม node หลังจากนั้นเรา อาจเขียนโปรแกรมสร้าง binary tree ซึ่งขณะทางานมันอาจจะสร้าง object จากคลาส node ได้หลาย ล้าน instance ภายในหนึ่งวินาที การใช้งานคลาสทาได้สองวิธี วิธีแรกคือการนาไปใช้สร้าง object และใช้งานผ่าน object ดังที่อธิบายไปแล้ว อีกวิธี หนึ่งคือเรียกใช้โดยตรงโดยไม่ต้องสร้าง object เรียกว่า static class แม้การใช้งานคลาสวิธีนี้จะไม่มี object ทาให้ดูเหมือนไม่เป็นหลักการ OOP แต่ในบางสถานการณ์ก็ถือว่ามีความเหมาะสมดี
  • 4.
    การนิยามคลาส ในภาษาจาวาสามารถนิยามคลาสหรือปีะกาศคลาสขึ้นมาโดยมีรูปแบบดังนี้ [AccessSpecifier] Class Name { Members } AccessSpecifierเป็นความสามารถในการเข้าถึงคลาสนั้นๆ class เป็นคีย์เวิร์ดในภาษาจาวาเพท่อใช้ในการประกาศคลาส Name เป็นชื่อคลาสมี่ประกาศขึ้น Members เป็นคุณลักษณะหรือเมธอดต่างๆ ของคลาสที่นิยามขึ้น
  • 5.
    การสร้างออบเจ็กต์ หลังจากนิยามคลาสขึ้นมาแล้ว ถ้าหากโปรแกรมต้องการใช้งานจะต้องสร้างออบเจ็กต์ขึ้นมา เพื่อบอกว่าออบเจ็กต์เป็นของคลาสใดโดย จะต้องประกาศออบเจ็กต์ขึ้นมาก่อนซึ่งมีรูปแบบดังนี้ ClassName ObjectName; การประกาศออบเจ็กต์นี้จะทาให้คอมไพเลอร์รับทราบว่ามีตัวแปร ObjectName แต่จะยังไม่มีหน่วยความจาสาหรับข้อมู,ของ ออบเจ็กต์ที่ประกาศขึ้น ซึ่งจัต้องสร้างออบเจ็กต์ขึ้นมาก่อนโดยใช้คาว่า new ซึ่งมีรูปแบบดังนี้ objecyName = new ClassName([arguments]) เมืื่อมีการสร้างออบเจ็กต์ขึ้นมาแล้ว สมาชิกของออบเจ็กต์คือสมาชิกของคลาสนั้น ซึ่งได้แก่คุณลักษณะหรือตัวแปรและเมธอดต่างๆ ออบเจ็กต์จะสามารถเข้าถึงข้อมูลที่เป็นคุณลักษณะหรือเรียกใช้เมธอดได้ไม่ขึ้นกับaccessSpecifier ที่ถูกประกาศไว้ตอน นิยามคลาส ดดยการเรียกใช้สมาชิกจะทาโดยใช้เครื่องหมายจุด แล้วตามด้วยสมาชิกที่ต้องการเรียกใช้
  • 6.
    STATIC • ตัวแปรและเมท็อดที่เป็น static •คีย์เวิร์ด static เป็นคีย์เวิร์ดที่ใช้ประกาศหน้าตัวแปรและเมท็อด ความพิเศษของ static คือว่าโดยปกติเวลาจะสร้างอ็อปเจ็คต้องทาการ new อ็อปเจ็คขึ้นมา ตัวแปรอ็อปเจ็คก็จะอ้างอิงไปที่อ็ อปเจ็คที่สร้างขึ้น แล้วก็เอาตัวแปรนี้ไปเรียกใช้ตัวแปร ใช้เมท็อด แต่ถ้าตัวแปรหรือเมท็อดนั้นเป็น static ก็จะทาให้สามารถใช้ตัวแปรหรือเมท็อดนั้นได้เลยโดยไม่ต้องสร้างอ็อปเจ็คมาเรียกใช้ งาน • สาหรับตัวแปรที่เป็น static นั้น จะทาให้ตัวแปรนั้นเป็นตัวแปรของคลาสไม่ได้เป็นของอ็อปเจ็คใดอ็อปเจ็คหนึ่ง ถ้ามีการเปลี่ยนแปลงขึ้นกับตัวแปร static อ็อปเจ็คอื่นๆทั้งหมดจะมองเห็นการ เปลี่ยนแปลง วิธีประกาศ • สาหรับตัวแปร modifier static ชนิดตัวแปร ชื่อตัวแปร ; • สาหรับเมท็อด modifier static ประเภทผลลัพธ์ ชื่อเมท็อด( ) { } • วิธีการเรียกใช้งานเมท็อดที่เป็น static ถ้าอยู่ในคลาสเดียวกันก็ ชื่อ เมท็อด(); แบบนี้ได้เลย แต่ถ้าอยู่คนละคลาสก็ ใช่ ชื่อคลาส.ชื่อเมท็อด static • เมท็อดที่เป็น static ที่ได้ใช้มาแล้วก็คือ เมท็อด main ใน public static void main(String [] args) เพราะว่า main เป็นเมท็อดสาหรับเริ่มทางาน ดังนั้นต้องสามารถทางาน ได้เลยโดยไม่ต้องมีอ็อปเจ็คมาเรียกใช้งาน เมท็อดชื่อ f ในบรรทัดที่ 17 ประกาศเป็น เมท็อด static ดังนั้นในบรรทัดที่ 12 สามารถเรียกใช้เมท็อด f ได้เลย แต่บรรทัดที่ 13 มีการเรียกใช้เมท็อด printlnซึ่งอยู่ในคลาส System ก็ต้องใช้ งานแบบ ชื่อคลาส.เมท็อด สังเกตว่าเมื่อเอาคาว่า static ออกในบรรทัดที่ 17 จะเกิด error ขึ้นทันทีที่บรรทัดที่ 12 ที่เรียกเมท็อด ตัวแปร เมท็อดและคลาสที่เป็น final • คล้ายกับ static คีย์เวิร์ด final ใช้ประกาศหน้าตัวแปร เมท็อดและยังประกาศหน้าคลาสได้ด้วย – ถ้า final ไปประกาศหน้าตัวแปร ตัวแปรนั้นจะมีค่านั้นตลอดเปลี่ยนแปลงไม่ได้ เรียกว่าเป็นค่าคงที่ – ถ้าอยู่หน้าเมท็อดแล้วคลาสนี้ถูกสืบคุณสมบัติไป เมท็อดนี้จะไม่สามารถเขียนทับแก้ไขได้หรือก็คือไม่สามารถ Overriding ได้ – แต่ถ้าอยู่คลาส คลาสนั้นๆจะไม่สามารถเป็นคลาสแม่ได้เลย คือบางทีไม่ต้องการให้คนเอาอะไรเปลี่ยนทั้งนั้นก็ประกาศคลาสเป็น final เพราะบางทีประกาศเมท็อดเป็น final คลาสลูกก็ เขียนเมท็อดใหม่ขึ้นมาได้ เช่น เราไม่ต้องการเขาเปลี่ยนชื่อ เขาก็เขียนเมท็อดสาหรับเปลี่ยนชื่อใหม่ได้ วิธีประกาศ • สาหรับตัวแปร final ชนิดตัวแปร ชื่อตัวแปร = ค่าคงที่ ; • สาหรับเมท็อด modifier final ประเภทผลลัพธ์ ชื่อเมท็อด( ) { } • สาหรับคลาส modifier final class ชื่อคลาส{ }
  • 7.
    CONSTRUCTORS คือเมธอดพิเศษ ทาหน้าที่กาหนดการทางานต่างๆให้กับออบเจกต์ใหม่ที่เกิดขึ้นจากคาสั่ง newทันทีโดยอัตโนมัติ หากไม่ กาหนดคอนสตรักเตอร์ ตัวแปลภาษา C# จะสร้างคอนสตรักเตอร์พื้นฐาน (default constructor) ให้เอง ตัวอย่างต่อไปนี้คือ คอนสตรักเตอร์พื้นฐาน ของคลาส Product public Product() { } ตัวอย่างการเรียกใช้ default constructor
  • 8.
    การส่งออบเจ็กต์ไปยังเมท็อด ในการเขียนโปรแกรมที่มีการสร้างคลาสขึ้นมาหลายๆคลาสนั้น ออบเจ็กต์ของคลาสหนึ่งสามารถใช้เป็นอาร์กิวเมนต์เพื่อส่งผ่านไป ยังเมธอดของคลาสอีกคลาสหนึ่งได้ เช่นโปรแกรม Student.Javaเป็นโปรแกรมคลาสสาหรับเก็บข้อมูลนักเรียนได้แก่ ซื่อและอีเมลล์โดยมีเมท็อดสาหรับกาหนด และเรียกดูชื่อและอีเมลล์สาหรับใช้งาน public class Student3 { private String name; private String email; public Student3() { name = “Unassigned”; email = “Unassigned”; } public String getEmail(){ return email; } public String getName(){ return name; } public void setEmail(String address){ email = address; } public void setName(String studentName){ name = studentName; } }
  • 9.
    ตัวอย่างการประยุกต์การเขียนโปรแกรมเชิงวัตถุ เป็นการออกแบบคลาสแล้วนามาเขียนโปรแกรมประยุกต์สาหรับใช้งานจริง โดยอธิบายขั้นตอนสาคัญในการทางานแต่ละขั้นตอน โดยมี โปรแกรมตัวอย่างการเขียนโปรแกรมสาหรับเข้ารหัสข้อมูลโดยส่งข้อมูลผ่านเข้าไปในเครือข่ายคอมพิวเตอร์เพื่อความปลอดภัยได้ นาเทคโนโลยีการเข้ารหัสมาใช้ ทาโดยการเลื่อนข้อมูล แต่ถ้าเป็นตัวอักขระตัวสุดท้ายของภาษาอังกฤษการเลื่อนข้อมูลจะกลับมา เริ่มต้นที่ตัวแรกใหม่ ถ้าหากเป็น 2-shift ข้อมูลจะแทนได้ดังนี้ A แทนด้วย C B แทนด้วย D Y แทนด้วย A Z แทนด้วย B ถ้าข้อมูลต้นฉบับเป็น “DIZZY” แล้วเข้ารหัสแบบ 2- shift ข้อมูลที่เข้ารหัสแล้วจะเป็น “FKBBA”
  • 10.
    จัดทาโดย • นายวรกานต์ วัลลาเลขที่2 ม.6/3 • นายรัชชานนท์ สุดยอด เลขที่8 ม.6/3 • นายศรัณย์ สุขสว่าง เลขที่9 ม.6/3 • นายวรวุฒิ แก้วสะอาด เลขที่11 ม.6/3 • นายธีรพล กุลวุฒิ เลขที่17 ม.6/3