Home » PHP » OOP : Class, Object, Instance, Method, Property and Field.

OOP : Class, Object, Instance, Method, Property and Field.

Published by in PHP on September 19th, 2011

Class คือ โครงร่างที่ใช้ในการกำหนดองค์ประกอบและวิธีทำงานของ object

ลักษณะทั่วไปของ class

class ชื่อคลาส {
.
.
}

โดยทั่วไปนิยมตั้งชื่อคลาสให้ขึ้นต้นด้วยตัวพิมพ์ใหญ่ (แต่ไม่จำเป็น) ส่วนข้อกำหนดอื่่นๆจะคล้ายกับการตั้งชื่อตัวแปร เช่น

class MyClass {
.
.
}

การนำ class มาใช้ใน สคริปท์ PHP
จะใช้รูปแบบเดียวกับการ include file โดยมีแนวทางดังนี้
1. สร้างคลาสใน web page เปล่าให้มีแต่สคริปท์ PHP เช่น
<?php
class PHPMySQL
.
.
?>
2. บันทึกให้มีส่วนขยายเป็น .php เช่น MyClass.php หรือ PHPMySQL.class.php
3. เรียกใช้งาน class โดยใช้ฟังก์ชัน include() หรือ require() เช่น
<body>
<?php
include(“PHPMySQL.class.php”);
.
.
?>
</body>

Object และ Instance
clss จะนำไปใช้งานได้ต้องถูกสร้างเป็น object เสียก่อน ดังนั้น class กับ object ก็คือสิ่งเดียวกัน แต่อยู่คนละสถานภาพ ด้วยเหตุนี้จึงเรียก object ว่า instance ของ class

$อินสแตนซ์ = new ชื่อคาส();
เช่น
$mycls = new MyClass();

ขั้นตอนในการสร้าง object ของ class นี้เรียกว่า Instantiate ซึ่ง object ที่ถูกสร้างจะมีความสามารถตามที่ระบุไว้ใน class ทุกประการ
class แต่ละ class สามารถนำไปสร้างเป็น object ได้มากกว่า 1 object เช่น

$myclass1 = new MyClass();
$myclass2 = new MyClass();
$myclass3 = new MyClass();

Method
เมธอด เป็นองค์ประกอบของ class สำหรับการกระทำอย่างใดอย่างหนึ่ง โดยปกติ class จะต้องประกอบด้วย method อย่างน้อย 1 method เสมอ

การสร้าง Method
ความจริงแล้ว method ก็คือ function ของ class นั่นเอง วิธีการสร้างก็จะเหมือนการสร้าง function ธรรมดา และภายใน class หนึ่งจะมีกี่ method ก็ได้ เช่น
class Circle {
function area($radius){
return pi()*$radius*$radius;
}
function perimeter($radius){
return 2*pi()*$radius;
}
}

การเรียกใช้ Method
จะใช้ operator -> ในการระบุ method ที่ต้องการเรียกใช้งาน โดยหากเป็นการเรียกเรียกใช้ภายใน class เดียวกัน ก็จะใช้รูปแบบดังนี้

$this->method(argument)

เช่น ต้องการเรียกใช้ method area() ภายใน class Circle ก็ทำดังนี้
$a = $this->area(10);

หากเป็นการเรียกจากนอก class ก็ต้องเรียกผ่าน instance ในรูปแบบ

$instance->method(argument)

เช่น ต้องการใช้ method area() ของ class Circle
$cir = new Circle();
echo $cir->area(10);
การกำหนดค่า Default Parameter ให้กับ Method

Class Payment{
function total($quantity, $price, $vat=7){
return $quantity*$price*(1+$vat/100);
}
}
ค่า default ถูกกำหนดให้กับ $vat หากเรียกใช้ค่าอื่นก็กำหนดลงไปโดยตรง เช่น

$p = new Payment();
$t1 = $p->total(10,20); //VAT 7%
$t2 =$p->total(30,40,10); //VAT 10%

Modifier แบบ Public และ Private
modifier เป็นการควบคุมการเข้าใช้งานสมาชิกของ class เช่น method และ property
public ใช้เมื่อไม่ต้องการปกป้องสิทธิการเข้าใช้สมาชิกนั้น
private ใช้เมื่อไม่ให้เข้าถึงสมาชิกนั้นจากนอก class จึงมักใช้ private กับสมาชิกที่มีความสำคัญและต้องการสงวนไว้ใช้เฉพาะภายใน class เท่านั้น

ตัวอย่าง
การนำไปใช้กับ method
[sourcecode language="php"]
class Cylinder{
private function circleArea($radius){
return pi()*$radius*$radius;
}
public function volume($radius,$height){
$base_area = $this->circleArea($radius);
$volume = $base_area*$height;
return $volume;
}
}
?>
เมื่อเรียกใช้งาน
include(“Cylinder.class.php”);

$cyl = new Cylinder();
echo $cyl->circleArea(10); //error เพราะ circleArea() เป็น private method
echo $cyl->volume(10, 20); //OK
?>
[/sourcecode]

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© CoolBook.Info : The Learning of Website Development