More Related Content
Similar to คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
Similar to คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น (20)
More from Pp'dan Phuengkun
More from Pp'dan Phuengkun (16)
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
- 1. การเขี ย น 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 แบบเดี ย วกัน สามารถที่ จ ะรั บ ข้อ มู ล ซึ่ งกัน และกัน ได้
- 2. Object คือ สิ่ งที่มีคุณสมบัติและพฤติกรรมตามทีกาหนดไว้ในคลาส
่
แบ่งได้เป็ น 2 ประเภท คือ
1) สิ่ งที่เป็ นรู ปธรรม (tangible) คือสิ่ งที่เป็ นวัตถุและจับต้องได้อาทิเช่น นักศึกษา
ปากกา และรถ เป็ นต้น
2) สิ่ งที่เป็ นนามธรรม (intangible) คือสิ่ งที่ไม่สามารถจับต้องได้อาทิเช่น คะแนน
รายชื่อวิชา การลงทะเบียน การฝาก-ถอนเงิน และตารางเที่ยวบิน เป็ นต้น
Object ประกอบไปด้ วย
1) คุณลักษณะ (attribute) หรื อข้อมูล (data)
2) เมธอด (method) หรื อพฤติกรรม (behavior)
3) คุณลักษณะ (attribute) หรื อข้อมูล (data) ข้อมูลของ Object แต่ละ Object อาจมี
ข้อมูลที่แตกต่างกัน
4) เมธอด (method) หรื อพฤติกรรม (behavior) สิ่ งที่ Object สามารถกระทาได้
- 3. Class
Class หมายถึงโครงสร้างของ object โดย class เป็ นตัวกาหนดว่า object นั้น
จะมี data หรื อคุณลักษณะอะไร บ้าง และมี method อะไรบ้าง เปรี ยบเสมือนพิมพ์
เขียว (template) ของออปเจ็ค ออปเจ็คที่ถกสร้างมาจากคลาส (class) บางครั้ง
ู
เรี ยกว่าเป็ น instance ของคลาส
คลาสหนึ่งคลาสสามารถสร้างออปเจ็คได้หลายออปเจ็ค
Object นั้นจะถูกสร้างขึ้นตามกระบวนการทางานของ JVM โดยที่นกพัฒนาจะต้อง
ั
ั
นิยาม Class ที่ตองการให้กบ JVM
้
- 4. ตัวอย่ าง คลาส เช่ น
คลาส Student อาจสร้างออปเจ็ค s1,s2 หรื อ s3 ซึ่ งเป็ นออปเจ็คของคลาส Student
- 5. คุณลักษณะเด่ นของการเขียนโปรแกรมเชิงวัตถุ
1) การห่ อหุ้ม (Encapsulation)
หมายถึงการจะเรี ยกใช้คุณลักษณะของออปเจ็ค จะทาได้โดยการเรี ยกผ่านเมธอดเท่านั้น
หลักการของการห่อหุม คือการกาหนดให้คุณลักษณะของออปเจ็คมีคุณสมบัติเป็ น private และ
้
กาหนดให้เมธอดมีคุณสมบัติเป็ น public โดยมีเมธอด get / set ไว้เพื่อเข้าถึง data นั้นๆ จะเรี ยกว่า
class นั้นๆ เป็ น Full Encapsulation class
ข้ อดีของการห่ อหุ้ม (Encapsulation)
- Flexibility
่
่
มีความยืดหยุนสูง การใช้งาน method ใน OOP นั้นมีความยืดหยุนสูงกว่าการใช้งาน Data Fields
ใน Object โดยตรงๆ
- Maintainability
การดูแลรักษาง่าย เพราะหากมีการเปลี่ยนแปลงภายใน Object ใดๆ หากว่าส่ วนติดต่อกับ Object
่
อื่นยังคงเดิมแล้ว ก็ยอมไม่ส่งผลกระทบต่องานทั้งระบบ
- Information Hiding
การซ่อนเร้นข้อมูลทาให้ออปเจ็คสามารถติดต่อกับออปเจ็คภายนอกผ่านเมธอดที่เป็ นส่ วนของ
interface เท่านั้น
- Modularity
การพัฒนาโปรแกรมเชิงวัตถุ จะสามารถกาหนดให้ออปเจ็คแต่ละออปเจ็คมีความเป็ นอิสระต่อกัน
- 6. 2) การสื บทอด (Inheritance)
่
หมายถึงการนิยามคลาสใหม่จากคลาสที่มีอยูแล้วโดยคลาสใหม่สามารถที่จะนาคุณลักษณะและ
เมธอดของคลาสเดิมมาใช้ได้
คือ Class หนึ่งๆสามารถสื บทอดคุณสมบัติบางประการจาก Class อื่น แล้วเพิ่มคุณสมบัติเฉพาะ
ของ Class นั้นเข้าไป
- Class ที่ได้รับการสื บทอดคุณสมบัติเรี ยกว่า Subclasses
- Class ที่เป็ นต้นแบบเรี ยกว่า Superclass
เป็ นการช่วยให้ไม่ตองพัฒนา ส่ วนที่ซ้ าหลายๆรอบ (Reusable)
้
Class หนึ่งๆจะมี Superclass ได้เพียง Class เดียวเท่านั้น (Single Inheritance)
ในภาษาจาวา จะใช้คียเ์ วิร์ด extends เพือระบุการสื บทอด
่
3) การมีได้หลายรู ปแบบ (Polymorphism)
หมายถึง การที่สามารถตอบสนองต่อข่าวสาร (เมธอด) เดียวกันด้วยวิธีการที่ต่างกัน และสามารถ
กาหนดออปเจ็คได้หลายรู ปแบบ
- Overridden method
- Dynamic Binding
- 8. การประกาศคุณลักษณะ
คุณลักษณะของออปเจ็ค คือตัวแปรหรื อค่าคงที่ซ่ ึ งประกาศภายในออปเจ็ค
โดยมีรูปแบบการประกาศดังนี้
[modifier] dataType attributeName;
Modifier คือคียเ์ วิร์ดของภาษาจาวาที่อธิบายคุณสมบัติต่างๆ ของตัวแปรหรื อค่าคงที่
dataType คือชนิดข้อมูลซึ่งอาจเป็ นชนิดข้อมูลพื้นฐานหรื อชนิดคลาส
attributeName คือชื่อของคุณลักษณะ
- 13. ในบางกรณี อาจมีเมธอดใดๆ ที่สามารถรับค่าที่เป็ นตัวแปรได้หลากหลายชนิดได้ ถ้า
กาหนดไว้เป็ นเมธอดเดียว อาจทาให้ผลลัพธ์ที่ได้เกิดความผิดพลาดได้ ดังนั้นถ้าชนิดตัวแปรเป็ น
คนละชนิดกัน ให้สร้างเมธอดขึ้นมาใหม่ โดยใช้ชื่อเมธอดเดียวกัน แต่สร้างให้เมธอด มีชนิดของ
ตัวแปรใน parameter list ต่างกัน โดยจะสร้างเมธอดใหม่ ขึ้นมาเป็ นจานวนเท่ากับชนิดของตัว
แปรที่เป็ นไปได้ เมื่อมีการใช้เมธอด ชื่อนี้โปรแกรมจะเรี ยกเมธอดที่มีชนิดของตัวแปร ตรงกับที่
่
่
ต้องการโดยอัตโนมัติ เรี ยกวิธีการนี้วา “Overloading” และเรี ยกเมธอดที่ใช้วธีการนี้วา
ิ
“Overloading Methods”
- 14. ตัวอย่างโปรแกรม
public class TestOverloading {
public static void main(String[] args) {
System.out.println("The maximum between is " + max(3,5));
System.out.println("The maximum between is " + max(4.5,6.8));
}
static double max(double num1,double num2) {
if(num1>num2)
return num1;
else
return num2;
}
static int max(int num1,int num2) {
if(num1>num2)
return num1;
else
return num2;
}
} //class TestOverloading