ในที่สุด blog ของ RMUTP ก็กลับมาอีกครั้ง
มีอาจารย์ท่านหนึ่งถามผมตามนี้
"ผมขอรบกวน
อาจารย์ให้ความหมายของ constructor และตัวอย่างการเขียน code ที่เกี่ยวกับมันใน action script 3.0 ด้วยครับ
และขอรบกวนให้ความหมายของ instance และตัวอย่างการเขียน code ที่เกี่ยวกับมันใน action script 3.0 ด้วยครับ
และการประกาศ object และตัวอย่างการเขียน code ที่เกี่ยวกับมันใน action script 3.0 ด้วยครับ"
ผมขอยกตัวอย่างก่อนแล้วค่อยอธิบายนะครับ
ตัวอย่าง Test class
- /********************/
- package
- {
- import flash.display.MovieClip;
- import flash.text.TextField;
- public class MyTestClass extends MovieClip {
- public function MyTestClass()
- {
- trace("This is Constructor!"); Constructor คือ อะไร และ เริ่มจากตรงไหนครับ
- var Instance1:MyInstance = new MyInstance(); ตรงนี้คือ instance ใช่มั้ยครับ สรุป instance เกิดจาก MyInstance รึเปล่าครับ
- Instance1.MyMethod1();
- }
- }
- }
- /************************/
- ตัวอย่าง class
- /************************/
- package
- {
- import flash.display.MovieClip;
- import flash.text.TextField;
- public class MyInstance {
- public function MyMethod1():void
- {
- trace("This is MyMethod 1");
- }
- }
- }
- /*********************/
2:(หมายถึงบรรทัดที่ 2) เป็นการสร้าง package ครับ
package คืออะไร ตามคำแปลหมายถึง หีบห่อ หรือ ภาชนะที่ใช้บรรจุ
ใน oop ก็มีความหมายทำนองเดียวกันครับ แต่สิ่งที่บรรจุอยู่ก็คือ class ครับ
4:,5:,21:,22: แสดงการเรียก packageที่มีอยู่แล้วมาใช้ครับ
ตอนนี้ใช้แค่ 4:
7:public class MyTestClass extends MovieClip {....}
เป็นการสร้าง class ชื่อ MyTestClass
public หมายถึง class อื่นๆ เอาไปใช้ได้ครับ (ใช้ทำอะไร, ใช้สร้าง object)
8: public function MyTestClass() {....} function นี้ก็คือ constructor
ตามที่อาจารย์ถามมาครับ
มีข้อสังเกต 2 อย่างครับคือ
1. มีชื่อเดียวกับ class
2.ไม่มีการกำหนดชนิดของข้อมูลที่ส่งกลับ (return type)
เอาไว้ทำอะไร
เอาไว้ให้มันทำงานเมื่อมีการสร้าง object ครับ
บางครั้งเราอาจจะต้องการกำหนดค่าตัวแปร
หรือทำงานบางอย่างเมื่อมีการสร้าง object
จากตัวอย่างให้แสดงข้อความใน output window ตามบรรทัดที่ 10
7:extends แสดงว่าเป็น sub class ของ MovieClip
11:เป็นการสร้าง Instance หรือ Object จาก class MyInstance
12:เป็นการเรียก method MyMethod1 จาก class MyInstance มาทำงานครับ
ข้อสังเกต จะต้องเรียกผ่าน object หรือ Instance ครับ
19: ถึง 31: เป็น class ที่เราสร้างขึ้นมาเพื่อเรียกใช้ครับ
26: ถึง 29: เป็น method ง่ายๆ เพื่อทดสอบครับ
ผลการวิ่งด้านล่างครับ