۳. ساختار و سینتکس
متد registerClass یک آبجکت تنظیمات دریافت میکند:
name: نام کلاس جدید (اختیاری). اگر ندهید، فریدا یک نام تصادفی میگذارد. معمولا نامی مثلcom.example.MyHackانتخاب میکنیم.implements: آرایهای از اینترفیسهایی که میخواهید پیادهسازی کنید (خروجیJava.use).superClass: کلاسی که میخواهید از آن ارثبری کنید (اختیاری، پیشفرضjava.lang.Objectاست).methods: لیست متدهایی که میخواهید در کلاس وجود داشته باشد.fields: متغیرهای کلاس (کمتر استفاده میشود).
کد فریدا (الگوی کلی):
javascript
var MyCustomClass = Java.registerClass({
name: 'com.mypackage.MyClass',
superClass: Java.use('android.app.Activity'), // اختیاری
implements: [Java.use('java.lang.Runnable')], // اختیاری
fields: {
myField: 'java.lang.String'
},
methods: {
/* متد سازنده */
$init: function () {
console.log("Constructor called")
},
/* پیادهسازی متد run (مربوط به Runnable) */
run: function () {
console.log("Running...")
}
}
})