ݺߣ

ݺߣShare a Scribd company logo
คลาสและการ๶ขียนโปรแกรมเชิงวัตถุ๶บื้องต้น
ความหมายของโอโอพี
ความหมายของโอโอพี
OOP เป็นคําย่อของ Object-Oriented Programming
หมายถึงการเขียนโปรแกรมเชิงวัตถุ หรือเขียนโปรแกรมแบบออบเจ็กต์
การเขียนโปแกรมในลักษณะนี้จะแตกต่างจากการ เขียนโปรแกรมที่
ประมวลผลเชิงคําสั่งที่มีการทํางานทีละคําสั่งดังที่เคยศึกษามา แต่จะเป็นการ
สร้างข้อมูลเป็นวัตถุหรือออบเจ็กต์ แล้วเขียนโปแกรมประมวลกับออบเจ็กต์
นั้นๆ ให้ทํางานตามต้องการ นอกจากนั้นยังเขียนโปรแกรมประมวลผลกับ
ออบเจ็กต์ได้
ความหมายของโอโอพี
ซึ่งออบเจ็กต์จะมีลักษณะ 3 ประการดังต่อไปนี้
-state เป็นคุณลักษณะของออบเจ็กต์นั้นๆ ที่บอกว่าออบเจ็กต์นั้น
เป็นอะไรบ้าง หรือเรียกอีกอย่างหนึ่งว่าเป็นคุณลักษณะประจํา โดย
คุณสมบัติขึ้นกับมุมมองของแต่ละคน ในการเขียนโปรแกรมเชิงวัตถุ
คุณลักษณะประจํานี้มักจะเป็นข้อมูล หรือตัวแปรต่างๆ ของออบเจ็กต์นั้น
-Behavior หมายถึง พฤติกรรมของออบเจ็กต์
-Identity เป็นคุณลักษณะที่ทําให้ออบเจ็กต์แต่ละออบเจ็กต์ต่างกัน
ความหมายของโอโอพี
ในการเขียนโปรแกรมนั้นออบเจ็กต์มีได้หลายตัว โดยออบเจ็กต์แต่ละตัว
จะเป็นอิสระ ไม่ขึ้นต่อกันแต่ละออบเจ็กต์สามารถที่จะสื่อสารหรือ
โต้ตอบกันได้โดยวิธีส่งเมสเสจ ถึงกัน
คลาสและออบ๶จ็กต์
คลาสและออบ๶จ็กต์
การมองทุกอย่างของปัญหาเป็นวัตถุหรือออบเจ็กต์นั้น ถ้าหากวัตถุใดมีลักษณะ
คล้ายกันก็จะรวมทั้งหมดให้เป็นคลาส ถ้าหากมีตัวแปรหรือสร้างข้อมูลขึ้นมา
ข้อมูลนั้นก็จะถูกใช้ในออบเจ็กต์นั้นๆ การกระทํากับออบเจ็กต์จะกระทําผ่าน
เมธอดของคลาสนั้นๆ
ส่วนสําคัญสองส่วนของออบเจ็กต์คือ คุณลักษณะซึ่งเป็นข้อมูลประจําตัวของ
ออบเจ็กต์และพฤติกรรมหรือเมธอด ซึ่งบอกว่าออบเจ็กต์กําลังทําสิ่งใดอยู่ถ้าหาก
มีการสร้างออบเจ็กต์ขึ้นมาและโปรแกรมต้องการจัดการกับข้อมูลที่เป็น
คุณลักษณะของออบเจ็กต์ก็จะกระทําผ่านเมธอด
คลาสและออบ๶จ็กต์
สําหรับคลาสจะเป็นที่รวบรวมของออบเจ็กต์หลายๆ ออบเจ็กต์ที่มี
ลักษณะเดียวกันแต่อาจมีข้อมูลประจําตัวหรือคุณลักษณะต่างๆ
ดังนั้นในการเขียนโปรแกรมเชิงวัตถุนั้นจะต้องรู้จักการนิยาม คลาส
จากทีกล่าวมาแล้วจะพบว่าคลาสเป็นการจัดกลุ่มของ ออบเจ็กต์ที่มี
คุณลักษณะและพฤติกรรมอย่างเหมือนกัน เปรียบเสมือนเป็นพิมพ์เขียว
ของออบเจ็กต์หรือเป็นแม่แบบสําหรับออบเจ็กต์
คลาสและออบ๶จ็กต์
ในการเขียนโปรแกรมเชิงวัตถุนั้นจะไม่มีการใช้งานคลาสตรงๆ แต่จะใช้คลาส
เป็นพิมพ์เขียวเพื่อสร้างออบเจ็กต์ต่างๆขึ้นมาออบเจ็กต์ทถูกสร้างจากคลาสจะ
เรียกว่า อินสแตนซ์ ของคลาสนั้นโดยที่คลาสใดคลาสหนึ่งสามารถสร้าง
ออบเจ็กต์ออกมาได้หลายตัวแต่ละตัวจะมีชื่อแตกต่างกันไป
สําหรับการเขียนโปรแกรมเชิงวัตถุด้วยภาษต่างๆนั้น จะมีคลาสมาตรฐานให้
ผู้เขียนโปรแกรมใช้งาน และผู้เขียนโปรแกรมก็ต้องเข้าใจวิธีการสร้างคลาสขึ้นมา
เองด้วย ดังนั้นในการเขียนโปรแกรมเชิงวัตถุจะต้องพยายามจําแนกว่าวัตถุที่เรา
สนใจนั้นต้องมีตัวแปรใดทีสามารถแยกแยะวัตถุแต่ละตัวได้และวัตถุดังกล่าวมี
พฤติกรรมอย่างไร จากนั้นนํามารวมเป็นคลาส และสร้างคลาสนั้นขึ้นมา
การนิยามคลาส
ในภาษาจาวาสามารถนิยามคลาสหรือประกาศคลาสขึ้นมาโดยมีรูปแบบดังนี้
[AccessSpecifier] Class Name
{
Members
}
AccessSpecifier… เป็นความสามารถในการเข้าถึงคลาสนั้นๆ
class …เป็นคีย์เวิร์ดในภาษาจาวาที่ใช้ในการประกาศคลาส
Name… เป็นชื่อคลาสมี่ประกาศขึ้น
Members…เป็นคุณลักษณะหรือเมธอดต่างๆ ของคลาสที่นิยามขึ้น
การนิยามคลาส
การสร้างออบเจ็กต์ หลังจากนิยามคลาสขึ้นมาแล้ว ถ้าหากโปรแกรมต้องการใช้
งานจะต้องสร้างออบเจ็กต์ขึ้นมา เพื่อบอกว่าออบเจ็กต์เป็นของคลาสใด โดย
จะต้องประกาศออบเจ็กต์ขึ้นมาก่อนซึ่งมีรูปแบบดังนี้
ClassName ObjectName;
การประกาศออบเจ็กต์นี้จะทําให้คอมไพเลอร์รับทราบว่ามีตัวแปร
ObjectName แต่จะยังไม่มีหน่วยความจําสําหรับข้อมูลของออบเจ็กต์ที่
ประกาศขึ้น ซึ่งจะต้องสร้าง
ออบเจ็กต์ขึ้นมาก่อนโดยใช้คําว่า new ซึ่งมีรูปแบบดังนี้
objecyName = new ClassName([arguments])
การนิยามคลาส
เมื่อมีการสร้างออบเจ็กต์ขึ้นมาแล้ว สมาชิกของออบเจ็กต์คือสมาชิกของ
คลาสนั้น ซึ่งได้แก่คุณลักษณะหรือตัวแปรและเมธอดต่างๆ
ออบเจ็กต์จะสามารถเข้าถึงข้อมูลที่เป็นคุณลักษณะหรือเรียกใช้เมธอดได้
ไม่ขึ้นกับaccessSpecifier ที่ถูกประกาศไว้ตอนนิยามคลาส
โดยการเรียกใช้สมาชิกจะทําโดยใช้เครื่องหมายจุด แล้วตามด้วยสมาชิก
ที่ต้องการเรียกใช้
Static
Static
ในจาวามีคลาสต่างๆให้ใช้งานมากมาย การสร้างคลาสขึ้นมาใหม้นี้ทําให้
เราสามารถสร้างเมธอดใหม่ๆขึ้นมาใช้งานแล้วรวมกันเป็นคลาสได้ และ
ที่ผ่านมาในบทนี้จะเห็นว่าถ้าหากมีการประกาศออบเจ็กต์ต้องการใช้งาน
สร้างออบเจ็กต์ด้วยคําสั่งnewเช่น
Static
จากโปรแกรมนี้จะเป็นว่าเมธอดในคลาส Scanner ที่ใช้รับข้อมูล
จะไม่เป็นแบบสแตติก ซึ่งจะต้องสร้างออบเจ็กต์ขึ้นมา แต่เมธอดชื่อ
max ในคลาส TestMax ที่สร้างขึ้นเป็นแบบสแตติก จึงเรียกชื่อ
คลาสและตามด้วยเมธอดมาใช้งานได้ทันทีโดยไม่ต้องสร้างออบเจ็กต์
Constructors
Constructors
เป็นฟังก์ชันในคลาสที่จะถูกเรียกอัตโนมัติเมื่อเราสร้างออบเจ็คให้กับ
คลาสนั้น ๆ ด้วยคําสั่ง newซึ่งมันจะเป็นฟังก์ชัน
Constructors
ได้ก็ต่อเมื่อชื่อของมันเหมือนชื่อคลาส ถ้าภายในคลาสไม่มี
constructor ดังนั้นมันจะทําการเรียก constructure ของ
base class (ถ้ามันมี) เช่น
Constructors
/ ในกรณีที่ไม่ส่งค่าพารามิเตอร์ให้กับ Constructor function
$default_cart = new Constructor_Cart;
// ในกรณีนี้ฟังก์ชัน Constructor ของ
Constructor_Cart นั้นได้กําหนดค่า default ให้กับ
พารามิเตอร์อยู่แล้ว // ดังนั้นเราก็ไม่จําเป็น
ต้องส่งค่าพารามิเตอร์ก็ได้ไม่เกิด error
// กรณีที่ส่งค่า parameter ไปด้วย $different_cart =
new Constructor_Cart(“20”, 17); ?>
การส่งออบเจ็กต์ไปยัง๶มธอด
การส่งออบเจ็กต์ไปยัง๶มธอด
ในการเขียนโปรแกรมที่มีการสร้างคลาสขึ้นมาหลายๆคลาสนั้น
ออบเจ็กต์ของคลาสหนึ่งสามารถใช้เป็นอาร์กิวเมนต์เพื่อส่งผ่านไปยัง
เมธอดของคลาสอีกคลาสหนึ่งได้เช่นโปรแกรมStudent.Java
เป็นโปรแกรมคลาสสําหรับเก็บข้อมูลนักเรียน ได้แก่ ชื่อและอีเมลโดยมี
เมธอดสําหรับกําหนดและเรียกดูชื่อและอีเมลสําหรับใช้งาน
ตัวอย่างการประยุกต์การ๶ขียนโปรแกรมเชิงวัตถุ
ตัวอย่างการประยุกต์การ๶ขียนโปรแกรมเชิงวัตถุ
จะเป็นแบบการออกแบบคลาสแล้วนํามาเขียนโปรแกรมประยุกต์
สําหรับใช้งานจริง โดยอธิบายขั้นตอนสําคัญในการทํางานแต่ละขั้นตอน
โดยมีโปรแกรมตัวอย่างการเขียนโปรแกรมสําหรับเข้ารหัสข้อมูลโดย
ส่งข้อมูลผ่านเข้าไปในเครือข่ายคอมพิวเตอร์เพื่อความปลอดภัยได้นํา
เทคโนโลยีการเข้ารหัสมาใช้ ทําโดยการเลื่อนข้อมูล แต่ถ้าเป็นตัวอักขระ
ตัวสุดท้ายของภาษาอังกฤษการเลื่อนข้อมูลจะกลับมาเริ่มต้นที่ตัวแรก
ใหม่
ตัวอย่างการประยุกต์การ๶ขียนโปรแกรมเชิงวัตถุ
– ถ้าหากเป็น 2-shift ข้อมูลจะแทนได้ดังนี้
A แทนด้วย C
B แทนด้วย D
………………..
Y แทนด้วย A
Z แทนด้วย B
ถ้าข้อมูลต้นฉบับเป็น “DIZZY” แล้วเข้ารหัสแบบ 2- shift ข้อมูล
ที่
เข้ารหัสแล้วจะเป็น “FKBBA”
ตัวอย่างการประยุกต์การ๶ขียนโปรแกรมเชิงวัตถุ
อธิบายการทํางานของโปรแกรม
-ถ้าหากพิมพ์คําว่า Teerawut ลงไป จะทําให้ตัวแปร message ชี้ไปยัง
ออบเจ็กต์สตริง “Teerawut”
-ต่อมาถ้าหากกดคีย์ตัวเลข 5 ลงไป จะทําให้ตัวแปร shift มีค่าเป็น 5
-เมื่อโปรแกรมเรียกใช้เมธอด encrypt จะทําให้ msg ซึ่งเป็นพารามิเตอร์
ของ
เมธอดชี้ไปยังออบเจ็กต์เดียวกับ message และพารามิเตอร์ shift
มีค่าเป็น 5 เช่นกัน
-เมื่อเมธอด encrypt ทํางาน ทําให้ตัวแปร encryptedMessage ชี้
ไปยังหน่วยความจําออบเจ็กต์สตริงที่สร้างขึ้นมาใหม่
-จากนั้นะทําให้ตัวแปร msg ชี้ไปยังสตริงชุดใหม่ที่ผ่านการเข้ารหัสแล้ว
-หลังจากนันจะให้ encryptedMessage มีค่าสตริงที่เข้ารหัสแล้ว
ผู้จัดทํา
นางสาวณัฐวดี ทวีสุข ชั้นม.6/1 เลขที่19
นางสาวกิตติธรา หล่อศิลาทอง ชั้นม.6/1 เลขที่22
นางสาวศศิวิมล แตงโต ชั้นม.6/1 เลขที่23
นางสาวสุทธิพร ปั้นหลวง ชั้นม.6/1 เลขที่24
นางสาวอังคณา หนูวัฒนา ชั้นม.6/1 เลขที่26
นางสาวศิริณัฐ สรรสม ชั้นม.6/1 เลขที่36
นางสาวอาชานีย์ วิเศษสิงห์ ชั้นม.6/1 เลขที่38

More Related Content

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