آموزش برنامه نویسی اندروید (Android)
۴۱۹ آموزش
نمایش دسته بندی ها (۴۱۹ آموزش)

ساخت یک روش (Method) جدید در یک کلاس (Class)، در برنامه نویسی اندروید

فرض کنید که یک کلاس با نام MyClass داریم که کدهای آن به صورت زیر می باشد :


package com.kelidestan.com;

import junit.framework.TestCase;

public class MyClass extends TestCase {

}

اکنون فرض کنید که بخواهیم یک روش (method) جدید برای این کلاس (class) تعریف کنیم که دو عدد را دریافت کند و ضرب آن دو عدد را برگرداند، برای این منظور، باید کدهای زیر را در میان کدهای کلاس بنویسیم :


public int Calculate (int number1, int number2) {
    int number3 = number1*number2;
    return number3;
}

یعنی کدهای کلاس MyClass به صورت زیر خواهد بود :


package com.kelidestan.com;

import junit.framework.TestCase;

public class MyClass extends TestCase {
   
    public int Calculate (int number1, int number2) {
        int number3 = number1*number2;
        return number3;
    }

}

اگر بخواهیم در یک Activity دلخواه از برنامه اندروید، روش Calculate از کلاس MyClass را اجرا کنیم، باید کدهای زیر را در میان کدهای آن Activity بنویسیم :


MyClass myClass = new MyClass();
int MyNumber1 = 2;
int MyNumber2 = 3;
int MyNumber3 = myClass.Calculate(MyNumber1, MyNumber2);

ساختار کلی یک روش (method) :

در واقع، ساختار کلی یک روش (method) به صورت زیر می باشد :


Access_modifier return_type name_of_method (parameters) {
    // operations to be performed;
    return return_object;
}

به جای name_of_method ، باید نام مورد نظرمان برای روش (method) را بنویسیم. به جای return_type ، باید نوع متغیری (شیء) که تسط روش (method) برگردانده می شود را بنویسیم. به جای Access_modifier نیز باید یکی از موارد زیر نوشته شود که چگونگی دسترسی به روش (method) را مشخص می کند (تعیین دسترسی های مجاز) :

1- public

2- protected

3- Access_modifier عدم مشخص کردن (Default)

4- private

دقت شود که بعد از Access_modifier ، می توانیم یک non-access modifier را بنویسیم (یا می توان اصلا آن را ننوشت) که برای آن، مواردی مثل موارد زیر را داریم :

static و final و abstract و synchronized و native و volatile و transient و ...

یعنی مثلا برای public ، می توانیم حالت های زیر را داشته باشیم (با فرض اینکه static را انتخاب کرده باشیم) :

1- public

2- public static

همان طور که گفتیم، Access_modifier ، چگونگی دسترسی به روش (method) را تعیین می کند (تعیین Modifier برای روش)، این موضوع، در جدول زیر به طور کامل بیان شده است (کلمات بله و خیر، داشتن دسترسی به روش را برای هر یک از آن موارد مشخص کرده اند) :

World Subclass Package Class Modifier
بله بله بله بله public
خیر بله بله بله protected
خیر خیر بله بله بدون مشخص کردن Modifier
خیر خیر خیر بله private

به جای parameters ، باید ورودی های روش (method) و همچنین نوع آنها را بنویسیم (ابتدا نوع آنها نوشته می شود و سپس نامی که می خواهیم برای ورودی دریافت شده، قرار داده شود).

در آخر هم، به جای عبارت // operations to be performed; ، کدهای مورد نظرمان برای روش (method) را می نویسیم. return_object نام متناظر با متغیری (شیء) است که روش (method) برمی گرداند، بنابراین آن را باید بر طبق کدهای روش (method) تعیین کنیم.

نکته

چنانچه روش (method) مورد نظر، هیچ مقداری را برنمی گرداند (دیگر کلمه return را نخواهیم داشت و روش، هیچ خروجی به ما نمی دهد)، در این صورت باید به جای return_type ، کلمه void را بنویسیم. یعنی مشابه کد زیر :


package com.kelidestan.com;

import junit.framework.TestCase;

public class MyClass extends TestCase {
   
    public void Calculate (int number1, int number2) {
        // some code
    }

}
نکته

چنانچه روش (method)، هیچ ورودی دریافت نکند، باید پرانتز جلوی نام آن را به صورت خالی بگذاریم (نباید پرانتز حذف شود). یعنی مشابه کد زیر :


package com.kelidestan.com;

import junit.framework.TestCase;

public class MyClass extends TestCase {
   
    public void Calculate () {
        // some code
    }

}