Tutorial for Application Development



Thursday 20 August 2009

๋Java การเขียน Program เชิงวัตถุ (OOP)

การเขียน 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 ตัวเองเท่านั้น

default

สามารถเรียกใช้งานได้ภายใน package เดียวกันเท่านั้น

final

Class นี้ไม่สามารถ เปลี่ยนแปลงได้

Synchronizable

Class ที่ต้องประมวลผลแบบเข้าคิวคือต้องรอให้งานเสร็จทีละงาน


Modifier ของ Method


Modifier

การใช้งาน

static

สามารถเรียกใช้งานโดยที่ไม่จำเป็นต้องสร้าง instance ขึ้นมา และ การเรียกใช้งานทุกครั้งจะใช้ memory ที่เดียวกันตลอด

public

สามารถเรียกใช้งานได้จากทุกที่

private

สามารถเรียกใช้งานได้เฉพาะภายใน class ตัวเองเท่านั้น

default

สามารถเรียกใช้งานได้ภายใน package เดียวกันเท่านั้น

abstract

Method ที่ยังไม่เขียนการทำงานมีเพียงชื่อ method เท่านั้น

final

Class นี้ไม่สามารถ เปลี่ยนแปลงได้

Synchronizable

Class ที่ต้องประมวลผลแบบเข้าคิวคือต้องรอให้งานเสร็จทีละงาน

protected

เรียกประมวลผลได้ ใน Class ตัวเอง และ Class ลูกเท่านั้น


Modifier ของ ตัวแปร(Variable)


Modifier

การใช้งาน

static

สามารถเรียกใช้งานโดยที่ไม่จำเป็นต้องสร้าง instance ขึ้นมา และ การเรียกใช้งานทุกครั้งจะใช้ memory ที่เดียวกันตลอด

public

สามารถเรียกใช้งานได้จากทุกที่

private

สามารถเรียกใช้งานได้เฉพาะภายใน class ตัวเองเท่านั้น

default

สามารถเรียกใช้งานได้ภายใน package เดียวกันเท่านั้น

final

Class นี้ไม่สามารถ เปลี่ยนแปลงได้

protected

เรียกประมวลผลได้ ใน Class ตัวเอง และ Class ลูกเท่านั้น

No comments: