More Related Content
Similar to คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น 1 (20)
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น 1
- 4. คลาสและออบเจ็กต์
การเขียนprogram
เชิงวัตถุ
(Object-Oriented
Programming:
OOP)
การเขียน program แบบ OOP มีลักษณะ 5 ประการ
1) ทุกสิ่งทุกอย่างคือ objectในแง่หนึ่งเราก็อาจตีความว่า object เป็นตัวแปรที่มีความ
พิเศษอยู่ในตัวเอง คือ นอกจากเก็บค่าต่าง ๆ ได้แล้ว เรายังสามารถที่จะสั่ง (request)
ให้ object ทางาน(operation) ต่าง ๆ ที่เกี่ยวกับตัวมันเองด้วย
2) Program ประกอบไปด้วย object ที่ต่างก็ส่งข้อความ (message) บอกให้กันและกัน
ว่าต้องทาอะไรการส่ง message ก็คือการส่ง request หรือการเรียกใช้ function ของ
object นั้น ๆ
3) Object แต่ละตัวมีหน่วยความจาที่เต็มไปด้วย object อื่น ๆเราสร้าง object จาก
object ตัวอื่นที่มีอยู่แล้ว
4) Object มี รูปแบบ หรือ ชนิด ของตัวเอง (type/class)
5) Object ที่ต้นตอมาจาก type แบบเดียวกันสามารถที่จะรับข้อมูลซึ่งกันและกันได้1
Object
- 5. – Object คือ สิ่งที่มีคุณสมบัติและพฤติกรรมตามที่กาหนดไว้ในคลาส
– ออบเจ็กต์(object) แบ่งได้เป็นสองประเภท คือ
1) สิ่งที่เป็นรูปธรรม (tangible) คือสิ่งที่เป็นวัตถุและจับต้องได้อาทิเช่น
นักศึกษา ปากกา และรถ เป็นต้น
2) สิ่งที่เป็นนามธรรม (intangible) คือสิ่งที่ไม่สามารถจับต้องได้อาทิเช่น
คะแนนรายชื่อวิชา การลงทะเบียน การฝาก-ถอนเงิน และตารางเที่ยวบิน
เป็นต้น
- 6. Objectประกอบไป
ด้วย
1) คุณลักษณะ (attribute) หรือข้อมูล (data)2) เมธอด (method)
หรือพฤติกรรม (behavior)3) คุณลักษณะ (attribute) หรือข้อมูล (data) ข้อมูล
ของ Object แต่ละ Object อาจมีข้อมูลที่แตกต่างกัน4) เมธอด (method) หรือ
พฤติกรรม (behavior) สิ่งที่ Object สามารถกระทาได้
ตัวอย่าง ออบเจ็กต์ คือ– นักศึกษา
ประกอบไปด้วยคุณลักษณะเช่น รหัส ชื่อ และเกรดเฉลี่ยมีเมธอดเช่น
ลงทะเบียน การสอบ และการเรียน
รถยนต์ประกอบไปด้วยคุณลักษณะเช่น ยี่ห้อ รุ่น และสีมีเมธอดเช่น
เคลื่อนที่ หยุดและเลี้ยว
สุนัขประกอบไปด้วยคุณลักษณะเช่น ชื่อ พันธุ์ และสีมีเมธอดเช่น เห่า
คลาน และกระดิกหาง
- 7. 2. Class – Class หมายถึงโครงสร้างของ object โดย class เป็น
ตัวกาหนดว่า object นั้นจะมี data หรือคุณลักษณะอะไร บ้าง และมี method
อะไรบ้าง เปรียบเสมือนพิมพ์เขียว (template) ของออปเจ็ค – ออปเจ็คที่ถูก
สร้างมาจากคลาส (class) บางครั้งเรียกว่าเป็น instance ของคลาสคลาสหนึ่ง
คลาสสามารถสร้างออปเจ็คได้หลายออปเจ็ค – Object นั้นจะถูกสร้างขึ้นตาม
กระบวนการทางานของ JVM โดยที่นักพัฒนาจะต้องนิยาม Class ที่ต้องการ
ให้กับ JVM
ตัวอย่าง คลาส เช่น คลาส Student อาจสร้างออปเจ็คs1,s2 หรือ s3 ซึ่งเป็น
ออปเจ็คของคลาส Student
- 9. ตัวอย่างคลาสและ
ออบเจ็กต์
Static
ตัวแปรและเมท็อดที่เป็น static
คีย์เวิร์ด static เป็นคีย์เวิร์ดที่ใช้ประกาศหน้าตัวแปรและเมท็อด ความพิเศษ
ของ static คือว่าโดยปกติเวลาจะสร้างอ็อปเจ็คต้องทาการ new อ็อปเจ็คขึ้นมา
ตัวแปรอ็อปเจ็คก็จะอ้างอิงไปที่อ็อปเจ็คที่สร้างขึ้น แล้วก็เอาตัวแปรนี้ไป
เรียกใช้ตัวแปร ใช้เมท็อด แต่ถ้าตัวแปรหรือเมท็อดนั้นเป็น static ก็จะทาให้
สามารถใช้ตัวแปรหรือเมท็อดนั้นได้เลยโดยไม่ต้องสร้างอ็อปเจ็คมาเรียกใช้
งาน
สาหรับตัวแปรที่เป็น static นั้น จะทาให้ตัวแปรนั้นเป็นตัวแปรของคลาส
ไม่ได้เป็นของอ็อปเจ็คใดอ็อปเจ็คหนึ่ง ถ้ามีการเปลี่ยนแปลงขึ้นกับตัวแปร
static อ็อปเจ็คอื่นๆทั้งหมดจะมองเห็นการเปลี่ยนแปลง
- 10. วิธีประกาศ
• สาหรับตัวแปร modifier static ชนิดตัวแปร ชื่อตัวแปร ;
• สาหรับเมท็อด modifier static ประเภทผลลัพธ์ ชื่อเมท็อด( ) { }
• วิธีการเรียกใช้งานเมท็อดที่เป็น static ถ้าอยู่ในคลาสเดียวกันก็ ชื่อ เมท็
อด(); แบบนี้ได้เลย แต่ถ้าอยู่คนละคลาสก็ ใช่ ชื่อคลาส.ชื่อเมท็อด static
• เมท็อดที่เป็น static ที่ได้ใช้มาแล้วก็คือ เมท็อด main ใน public static void
main(String [] args) เพราะว่า main เป็นเมท็อดสาหรับเริ่มทางาน ดังนั้น
ต้องสามารถทางานได้เลยโดยไม่ต้องมีอ็อปเจ็คมาเรียกใช้งาน
- 11. เมท็อดชื่อ f ในบรรทัดที่ 17 ประกาศเป็น เมท็อด static ดังนั้นในบรรทัดที่
12 สามารถเรียกใช้เมท็อด f ได้เลย แต่บรรทัดที่ 13 มีการเรียกใช้เมท็อด
printlnซึ่งอยู่ในคลาส System ก็ต้องใช้งานแบบ ชื่อคลาส.เมท็อด
สังเกตว่าเมื่อเอาคาว่า static ออกในบรรทัดที่ 17 จะเกิด error ขึ้น
ทันทีที่บรรทัดที่ 12 ที่เรียกเมท็อด
- 12. ตัวแปร เมท็อดและคลาสที่เป็น final
คล้ายกับ static คีย์เวิร์ด final ใช้ประกาศหน้าตัวแปร เมท็อดและยัง
ประกาศหน้าคลาสได้ด้วย
ถ้า final ไปประกาศหน้าตัวแปร ตัวแปรนั้นจะมีค่านั้นตลอดเปลี่ยนแปลง
ไม่ได้เรียกว่าเป็นค่าคงที่
ถ้าอยู่หน้าเมท็อดแล้วคลาสนี้ถูกสืบคุณสมบัติไป เมท็อดนี้จะไม่สามารถ
เขียนทับแก้ไขได้หรือก็คือไม่สามารถ Overriding ได้
แต่ถ้าอยู่คลาส คลาสนั้นๆจะไม่สามารถเป็นคลาสแม่ได้เลย คือบางทีไม่
ต้องการให้คนเอาอะไรเปลี่ยนทั้งนั้นก็ประกาศคลาสเป็น final เพราะบางที
ประกาศเมท็อดเป็น final คลาสลูกก็เขียนเมท็อดใหม่ขึ้นมาได้ เช่น เราไม่
ต้องการเขาเปลี่ยนชื่อ เขาก็เขียนเมท็อดสาหรับเปลี่ยนชื่อใหม่ได้
- 13. วิธีประกาศ
• สาหรับตัวแปร final ชนิดตัวแปร ชื่อตัวแปร = ค่าคงที่ ;
• สาหรับเมท็อด modifier final ประเภทผลลัพธ์ ชื่อเมท็อด( ) { }
• สาหรับคลาส modifier final class ชื่อคลาส{ }
- 14. Constructors
คือเมธอดพิเศษ ทาหน้าที่กาหนดการทางานต่างๆให้กับออบเจกต์ใหม่ที่
เกิดขึ้นจากคาสั่ง new ทันทีโดยอัตโนมัติ หากไม่กาหนดคอนสตรักเตอร์ ตัว
แปลภาษา C# จะสร้างคอนสตรักเตอร์พื้นฐาน (default constructor) ให้เอง
ตัวอย่างต่อไปนี้คือ คอนสตรักเตอร์พื้นฐาน ของคลาส Product public Product()
{ } ตัวอย่างการเรียกใช้default constructor
การส่งออบเจ็กต์ไปยังเมท็อด
ในการเขียนโปรแกรมที่มีการสร้างคลาสขึ้นมาหลายๆคลาสนั้น
ออบเจ็กต์ของคลาสหนึ่งสามารถใช้เป็นอาร์กิวเมนต์เพื่อส่งผ่านไปยังเมธอดของ
คลาสอีกคลาสหนึ่งได้
เช่นโปรแกรม Student.Javaเป็นโปรแกรมคลาสสาหรับเก็บข้อมูลนักเรียนได้แก่
ซื่อและอีเมลล์โดยมีเมท็อดสาหรับกาหนดและเรียกดูชื่อและอีเมลล์สาหรับใช้งาน
- 15. 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(Stringaddress){
email = address;
}
public void setName(String studentName){
name = studentName;
}
}
- 17. ตัวอย่างการประยุกต์การเขียนโปรแกรมเชิงวัตถุ
อธิบายการทางานของโปรแกรม
1. หากพิมพ์คาว่า Teerawut ลงไป จะทาให้ตัวแปร message ชี้ไปยัง
ออบเจ็กต์สตริง “Teerawut”
2. ต่อมาถ้าหากกดคีย์ตัวเลข 5 ลงไป จะทาให้ตัวแปร shift มีค่าเป็น 5
3. เมื่อโปรแกรมเรียกใช้เมท็อด encrypt จะทาให้ msg ซึ่งเป็นพารามิเตอร์
ของเมท็อดชี้ไปยังออบเจ็กต์เดียวกับ message และพารามิเตอร์ shift มี
ค่าเป็น 5 เช่นกัน
4. เมื่อเมท็อด encrypt ทางาน ทาให้ตัวแปร encrypted Message ชี้ไปยัง
หน่อยความจาออบเจ็กต์สตริงที่สร้างขึ้นมาใหม่
5. จากนั้นจะทาให้ตัวแปร msg ชี้ไปยังสตริงชุดใหม่ที่ผ่านการเข้ารหัส
แล้ว
6. หลังจากนั้นจะให้ encryptedMessage มีค่าสตริงที่เข้ารหัสแล้ว
- 18. ตัวอย่างโปรแกรม จะแสดงการสร้างคลาสของการนาตัวอักขระ [] มาสร้าง
เป็นรูปสามเหลี่ยม โดยการสร้างคลาสสามารถทาได้ดังต่อไปนี้
1. สร้างโปรเจ็กต์ใหม่
2. สร้างคลาสใหม่ โดยเลือกเมนู New>Class
3. กาหนดชื่อคลาส แล้วกด Next
4. โปรแกรมจะแสดงคลาสใหม่ขึ้นมา
5. จากนั้นให้เติมโค้ด แล้วรันโปรแกรม
- 19. สมาชิก
นางสาวนายณัฐพงศ์ กือเย็น ชั้น ม.6/2 เลขที่ 3
นางสาวสิริวรรณ คาเตจ๊ะ ชั้น ม.6/2 เลขที่ 19
นางสาวเบญจรัตน์ ศรอารา ชั้น ม.6/2 เลขที่ 29
นาวสาวกนกวรรณ ลัดดากุล ชั้น ม.6/2 เลขที่ 31
นางสาวสโรชา บุญช่วย ชั้น ม.6/2 เลขที่ 33
นางสาวเพ็ญพิชชา เทียนชัย ชั้น ม.6/2 เลขที่ 35