Skip to content

۳. ساختار و سینتکس ​

متد 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...")
        }
    }
})