การประกาศ class
การประกาศ Class
สำหรับคนที่ยังไม่เคยเขียนโปรแกรมแบบ OOP อาจจะต้องศึกษาเพิ่มเติมกันนะครับ ถ้าให้สอนเองด้วยเดี่ยวจะยาว ขั้นแรก เรามาดูรูปแบบการประกาศ class กันก่อนนะครับ
ในรูปนี้เป็นเพียงการประกาศ ตัวแปร(Member variable) และเมธอด (Method) ของคลาสเท่านั้น ยังมีการประกาศ Property ที่เป็นการกำหนดคุณสมบัติให้กับตัวแปรอีก ซึ่งผมจะพูดถึงต่อไปนะครับ
ใน Objective-C นั้นเราสามารถประกาศตัวแปรได้ทั้ง 2 แบบ คือแบบ Strong type และแบบ Weak type สำหรับการประกาศแบบ Strong type ก็ประกาศแบบปกติครับ โดยขึ้นต้นด้วยชื่อ class และตามด้วย * (หมายถึงการเป็น pointer) และตามด้วยชื่อของ object ที่เราจะตั้ง แต่การประกาศแบบ Weak type นั้นจะใช้คำว่า id นำหน้าโดย “ไม่ต้องมี *” เพราะการประกาศ id นั้นจะเป็นการประกาศตัวแปรที่เป็น pointer ไปโดยอัตโนมัติ ซึ่งจะใช้บ่อยอยู่พอสมควรในกรณีที่เราไม่รู้ว่า object นั้นเป็น type อะไร ดังนี้ครับ
MyClass *myObject1; // Strong typing
id myObject2; // Weak typing
|
การประกาศ attributes
คุณลักษณะของออปเจ็ค คือตัวแปรหรือค่าคงที่ซึ่งประกาศภายในออปเจ็ค โดยมีตัวอย่างการประกาศคือ
[modifier] dataType attributeName;
- Modifier คือ คีย์เวิร์ดของภาษาจาวาที่อธิบายคุณสมบัติต่างๆ ของตัวแปรหรือค่าคงที่
- dataType คือ ชนิดข้อมูลซึ่งอาจเป็นชนิดข้อมูลพื้นฐานหรือชนิดคลาส
- attributeName คือ ชื่อของคุณลักษณะ
- dataType คือ ชนิดข้อมูลซึ่งอาจเป็นชนิดข้อมูลพื้นฐานหรือชนิดคลาส
- attributeName คือ ชื่อของคุณลักษณะ
การประกาศ methods
[modifier] return_type methodName ([argument]) {
[method body]
}
- Modifier คือ คีย์เวิร์ด ของภาษาจาวาที่ใช้ในการอธิบายระดับการเข้าถึง (Access modifier)
- Return_type คือ ชนิดข้อมูลของค่าที่จะมีการส่งกลับ
- methodName คือ ชื่อของเมธอด
- Arguments คือ ตัวแปรที่ใช้ในการรับข้อมูลที่ออปเจ็คส่งมาให้
- Method body คือ คำสั่งต่างๆ ของภาษาจาวาที่อยู่ในเมธอด
- methodName คือ ชื่อของเมธอด
- Arguments คือ ตัวแปรที่ใช้ในการรับข้อมูลที่ออปเจ็คส่งมาให้
- Method body คือ คำสั่งต่างๆ ของภาษาจาวาที่อยู่ในเมธอด
การประกาศ object
objectName = new ClassName
([arguments]);
- objectName คือชื่อของออปเจ็ค
- new คือคีย์เวิร์ดของภาษาจาวาเพื่อใช้ในการสร้าง
ออปเจ็ค
- ClassName คือชื่อของคลาส
- Arguments คือค่าที่ต้องการส่งผ่านในการเรียก
Contructor
การเรียกใช้ methods
objectName .methodName[(arguments)];
qobjectName คือชื่อของ object
qmethodName คือชื่อ method ของ object นั้น
qarguments คือค่าที่ต้องการส่งผ่านไปให้กับ method ของ object นั้น โดยที่จะต้องมีชนิดข้อมูลและจำนวน argument ให้สอดคล้องกับที่ประกาศใน method ของ object นั้น
qตัวอย่าง s1.setName(“Thana”);
ข้อมูลเริ่มต้นจาก thaidev.com |
ตัวอย่างคลาส ที่เตรียมให้ถูกเรียกใช้
class TAirPlane {
int color; // สี เป็น คุณสมบัติอีกแบบ
static void Fly() { }; // บิน เป็น พฤติกรรม หรือ กริยา ที่ object ทำได้
static void Land() { }; // ลงจอด เป็น อีกพฤติกรรมหนึ่ง
TAirPlane() {
System.out.println("result of constructor");
}
}
TAirPlane AirPlane1; // สร้าง object ชื่อ AirPlane1 จาก class ชื่อ TAirPlane
AirPlane1 = new AirPlane1(); // จองพื้นที่ในหน่วยความจำ จึงจะเริ่มเรียกใช้ได้
AirPlane1.Fly(); // สั่งให้ object AirPlane1 ทำกริยา บิน
AirPlane1.color = RED; // เปลี่ยน สี (คุณสมบัติ) ของเครื่องบิน ให้เป็นสีแดง
วิธีเรียกใช้ method แบบต่าง ๆ |
วิธีเรียกใช้ method แบบต่าง ๆ |
แบบที่ 1 : เรียกใช้ Constructor และใช้พื้นที่ในหน่วยความจำ
|
การเรียกใช้ attributes
การเรียกใช้ Class Attribute
ในการใช้งาน Class เมื่อเราต้องการที่จะอ้างอิง Attribute ที่อยู่ภายใน Class สามารถทำได้ โดยใช้ Pointer พิเศษที่ชื่อว่า $this ชี้ไปที่ชื่อของ Attribute ที่เราต้องการรูปแบบการเรียกใช้ Class Operation
qการเรียกใช้งาน Class Operation จะทำได้ก็ต่อมีการเรียกใช้งานผ่าน instance ที่เราสร้างขึ้นมาจาก ClassExample: Class Attribute & Operation
ไม่มีความคิดเห็น:
แสดงความคิดเห็น