การเขียน Program เชิงวัตถุ (OOP)
ความคิดหลักที่สำคัญของการเขียนโปรแกรมเชิงวัตถุคือ คลาส (Class) และ ออบเจ็กต์ (Object)
Class คือตัวที่กำหนดโครงสร้างและพฤติกรรมของวัตถุ เมื่อต้องการนำไปใช้จริง เราต้องสร้าง instance ของ Class นั้นขึ้นมา instance ที่สร้างขึ้นมานั้นก็คือ Object นั่นเอง
ถ้าเปรียบ Class คือ โครงสร้างและ พฤติกรรมของวัตถุประเภทหนึ่ง instance หรือ Object ในภาษาเชิงวัตถุก็เปรียบเสมือนตัวแปร ในภาษาทั่วๆ ไป และ Class ก็คือชนิดข้อมูลนั่นเอง
Class เปรียบเสมือน พิมพ์เขียว ที่ กำหนดโครงสร้าง และแบบแปลน ต่าง ๆ ว่า Object ที่สร้างจาก Class ควรจะมีอะไรบ้าง
Object คือ instance ที่สร้างขึ้นมาจาก Class ใด Class หนึ่ง
** Class ไม่สามารถนำไปใช้ต่อได้ จะใช้ได้ก็ต่อเมื่อถูกสร้างเป็น Object แล้วเท่านั้น
1. สมาชิกของ Class (Class Member)
สมาชิกของ Class มีสอง ประเภทคือ
- สมาชิกที่เป็นข้อมูล (data members) อาจเป็น ค่าคงที่ ตัวแปรของข้อมูลชนิดพื้นฐาน , array , หรือ แม้แต่ instances ของ Class
- สมาชิกที่เป็น Function (Method member) หรือเรียกสั้น ๆว่า method สมาชิกที่เป็น Function เรียกอีกอย่าง ว่า เป็น ส่วนของ พฤติกรรม ของ Class นั่น เอง
Example Class ของบัตรรายการบัญชีรายชื่อหนังสือ
Data member
- ชื่อหนังสือ (Title)
- ประเภท(type)
- วันที่พิมพ์ (printed date)
- ชื่อผู้แต่ง (author name)
- สถานะ การยืม(status)
Method member หรือ พฤติกรรม
- getName();
- getStatus();
- getAuthorName();
- setStatus();
2. ขอบเขตการเข้าถึง (Access Modifier )
คือ กฎในการกำหนดว่า Class member ต่าง ๆ ไม่ว่าจะเป็น ตัวแปร หรือ method สามารถเรียกใช้งานได้แบบใดบ้าง
ตัวแปร Modifier ของ class ,ตัวแปร ,และ method
Modifier | Class | Method | Variable |
abstract | / | / | |
static | | / | / |
public | / | / | / |
protected | / | / | / |
private | | / | / |
final | / | / | / |
synchronizable | | / | |
Modifier ต่าง ๆ เมื่อนำมาใช้ กับ Class ,Method หรือ ตัวแปร จะมีผลต่างกัน ดังต่อไปนี้
Modifier ของ class
Modifier | การใช้งาน |
public | สามารถเรียกใช้งานได้จากทุกที่ |
private | สามารถเรียกใช้งานได้เฉพาะภายใน class ตัวเองเท่านั้น |
| สามารถเรียกใช้งานได้ภายใน package เดียวกันเท่านั้น |
final | Class นี้ไม่สามารถ เปลี่ยนแปลงได้ |
Synchronizable | Class ที่ต้องประมวลผลแบบเข้าคิวคือต้องรอให้งานเสร็จทีละงาน |
Modifier ของ Method
Modifier | การใช้งาน |
static | สามารถเรียกใช้งานโดยที่ไม่จำเป็นต้องสร้าง instance ขึ้นมา และ การเรียกใช้งานทุกครั้งจะใช้ memory ที่เดียวกันตลอด |
public | สามารถเรียกใช้งานได้จากทุกที่ |
private | สามารถเรียกใช้งานได้เฉพาะภายใน class ตัวเองเท่านั้น |
| สามารถเรียกใช้งานได้ภายใน package เดียวกันเท่านั้น |
abstract | Method ที่ยังไม่เขียนการทำงานมีเพียงชื่อ method เท่านั้น |
final | Class นี้ไม่สามารถ เปลี่ยนแปลงได้ |
Synchronizable | Class ที่ต้องประมวลผลแบบเข้าคิวคือต้องรอให้งานเสร็จทีละงาน |
protected | เรียกประมวลผลได้ ใน Class ตัวเอง และ Class ลูกเท่านั้น |
Modifier ของ ตัวแปร(Variable)
Modifier | การใช้งาน |
static | สามารถเรียกใช้งานโดยที่ไม่จำเป็นต้องสร้าง instance ขึ้นมา และ การเรียกใช้งานทุกครั้งจะใช้ memory ที่เดียวกันตลอด |
public | สามารถเรียกใช้งานได้จากทุกที่ |
private | สามารถเรียกใช้งานได้เฉพาะภายใน class ตัวเองเท่านั้น |
| สามารถเรียกใช้งานได้ภายใน package เดียวกันเท่านั้น |
final | Class นี้ไม่สามารถ เปลี่ยนแปลงได้ |
protected | เรียกประมวลผลได้ ใน Class ตัวเอง และ Class ลูกเท่านั้น |
No comments:
Post a Comment