ในคลาส ActionScript3 ของฉัน ฉันสามารถมีคุณสมบัติที่มี getter และ setter ได้หรือไม่

ในคลาส ActionScript3 ของฉัน ฉันสามารถมีคุณสมบัติที่มี getter และ setter ได้หรือไม่


person Pavel Chuchuva    schedule 29.09.2008    source แหล่งที่มา
comment
คุณหมายความว่าอย่างไร? คุณสามารถมีคลาสที่มีคุณสมบัติพร้อมกับ getters และ setters   -  person Max Stewart    schedule 30.09.2008
comment
ใช่นั่นคือสิ่งที่ฉันต้องการ ขออภัยที่ไม่ชัดเจน   -  person Pavel Chuchuva    schedule 30.09.2008


คำตอบ (3)


โอเค คุณสามารถใช้ไวยากรณ์ getter/setter พื้นฐานสำหรับคุณสมบัติใดๆ ของคลาส AS3 ของคุณได้ ตัวอย่างเช่น

package {

    public class PropEG {

        private var _prop:String;

        public function get prop():String {
            return _prop;
        }

        public function set prop(value:String):void {
            _prop = value;
        }
    }
}
person Max Stewart    schedule 29.09.2008

ใช่ คุณสามารถสร้างฟังก์ชัน getter และ setter ภายในคลาส AS3 ได้

ตัวอย่าง:


private var _foo:String = "";

public function get foo():String{
    return _foo;
}

public function set foo(value:String):void {
    _foo= value;
}

ข้อมูลเพิ่มเติมเกี่ยวกับ getters และ setters สามารถพบได้ ที่นี่

person JustLogic    schedule 29.09.2008

getter คือฟังก์ชันที่มีค่าส่งคืนขึ้นอยู่กับสิ่งที่เราส่งคืน ตัวตั้งค่าจะมีพารามิเตอร์ตัวเดียวเสมอ เนื่องจากเราให้ค่าใหม่แก่ตัวแปรผ่านพารามิเตอร์

ก่อนอื่นเราสร้างอินสแตนซ์ของคลาสที่มี getter และ setter ในกรณีของเราคือ "a" จากนั้นเราจะเรียกตัวตั้งค่า หากเราต้องการเปลี่ยนตัวแปร และใช้ไวยากรณ์จุด เราจะเรียกใช้ฟังก์ชันตัวตั้งค่า และด้วยตัวดำเนินการ = เราจะเติมพารามิเตอร์ ในการรับค่าของตัวแปร เราใช้ getter ในลักษณะเดียวกันดังที่แสดงในตัวอย่าง (a.myVar) ต่างจากการเรียกใช้ฟังก์ชันทั่วไป เราละเว้นวงเล็บ อย่าลืมเพิ่มประเภทการส่งคืนมิฉะนั้นจะเกิดข้อผิดพลาด

บรรจุุภัณฑ์ {

import flash.display.Sprite;
import flash.text.TextField;

public class App extends Sprite 
{
       private var tsecField:TextField;
       private var tField:TextField;

       public function App() 
       {
               myTest();
       }

       private function myTest():void 
       {
               var a:Testvar = new Testvar();

               tField = new TextField();
               tField.autoSize = "left";
               tField.background = true;
               tField.border = true;
               a.mynewVar = "This is the new var.";
               tField.text = "Test is: "+a.myVar;
               addChild(tField);
       }
}

}

นำเข้า flash.display.Sprite;

นำเข้า flash.text.TextField;

คลาส Testvar ขยายสไปรท์ { การทดสอบ var สาธารณะ: String;

public function Testvar() 
{
}
public function set mynewVar(newTest:String):void 
{
       test = newTest;
}
public function get myVar():String 
{
       return test;
}

}

person Swati Singh    schedule 02.07.2011