قالب و افزونه وردپرس

کار با کلاس و متدها در اندروید

منتشرشده توسط حامد قنبری در تاریخ

همانطور که می دانید  به منظور یکپارچه نمودن برنامه های اندرویدی که شامل چندین کلاس و اکتیویتی است اغلب نیاز پیدا می کنیم که کلاس ها را به منظور اجرای متدی از آن کلاس فراخوانی کنیم. بدین منظور می توان با فراخوانی آن کلاس و به دنبال آن با فراخوانی متد بدون نوشتن متدهای جدید در آن کلاس به این امر مهم دست . در این جلسه آموزشی قصد داریم نحوه فراخوانی کلاس ها و متد را برای کاربران عزیز همراه با مثال کاربردی نشان دهیم.

نحوه ایجاد کلاس و برنامه نویسی آن:

در برنامه نویسی، کلاس نقشه نوعی و مشترک برخی از اشیاست، که دارای ویژگی ها و رفتارهای مشترکی هستند. برای ایجاد کلاس در اندروید استودیو به صورت زیر عمل می کنیم.

Select app > Java > package > Right Click on package. After that Click on New > Java Class

و در نهایت نامی برای آن کلاس انتخاب می کنیم.

نحوه برنامه نویسی کلاس ها:

برای نوشتن کلاس ابتدا لازم است که ابتدا کلاس سازنده کلاس اصلی ایجاد شود که اصولاً همنام با کلاس اصلی است و به دنبال آن متدهای مورد نظر کلاس برنامه نویسی می شوند.

 

package com.site.psrd.Cratecalss;

/**
 * Created by hamed on 06/19/2017.
 */
public class MyClass {
    
    

public MyClass() {
        
        }
  
    
 public void mymethod(){
     
 }   
        }

 

نحوه دریافت Context  از Activity در کلاس ها

در مواردی این ضرورت احساس می شود که کلاس ایجاد شده را به گونه ای تعریف کنیم که بتواند Context  یک اکتیویتی را دریافت کند. به همین منظور لازم است که در آن Activity  ، ابجکتی از همان کلاس بسازیم . برای مثال تصور کنید که کلاسی به نام YourClass  ساخته ایم که از Extend  ، نوع Application ساخته شده است و قرار است Context  مربوط به یک اکتیویتی مثلاً MainActivity  را دریافت کند. از این رو  باید ساختار کلاس yorclass را به صورت کدهای زیر بنویسیم :

 

public class yourclass extends Application {
       
    private Context context;

    public yourclass (Context context) {
        this.context = context;
    }

}

 

 

همچنین می باید در اکتیویتی مورد نظرمان مثلاً در MainActivity   آبجکتی از از کلاسی که قصد ارسال Context  به آن کلاس را داریم بسازیم که سینتکس کلی آن بصورت زیر می باشد.

YourClass yourclass = new YourClass(this);

 نحوه فراخوانی متد یک کلاس، در کلاس دیگر:

در برخی موارد نیاز پیدا می کنیم که  متدی که در یک کلاس نوشته شده شده است به کلاس یا اکتیویتی دیگری فراخوانی کنیم تا مجبور نباشیم در آن کلاس متد موردنیاز و موجود در کلاس دیگر خود را بازنویسی کنیم. برای این کار می توانیم از دو روش زیر استفاده کنیم.

فرض کنید که در کلاس MyClass متدی بنام mymethod وجود دارد و ما قصد داریم از همان متد در کلاس یا اکتیویتی AnotherClass استفاده بکنیم . به همین منظور در کلاس AnotheClass  ، آن متد را اینگونه فراخوانی می کنیم:

MyClass myclass = new MyClass();
myclass.mymethod();

روش دیگری نیز وجود دارد که در آن متد mymethod را می توان با استفاده از new MyClass فراخوانی کرد. به این صورت:

 

new MyClass().mymethod();

نحوه نوشتن متد در کلاس ها :

برای نوشتن متدها لازم است که ابتدا تعیین کنیم که سطح دسترسی به این متد چگونه خواهد بود. اگر بخواهیم متدی بنویسیم که از آن در کلاس های دیگر پکیج نیز استفاده کنیم می باید بصورت public  نوشته شد. اما اگر قصد داریم که فقط در همان کلاس از آن متد استفاده کنیم می توانیم سطوح دسترسی آن را privite تعریف کنیم و انحصاراً در همان کلاس از آن استفاده کنیم. اما پارامترهای مورد استفاده در متدها شامل دو پارامتر می باشد که پارامتر اول مربوط به نوع ورودی های روش (method) و پارامتر دوم مربوط به نام ورودهای روش است. لازم به ذکر است که وارد کردن پارامترها در نوشتن متدها الزامی نیست و می توان هیچ پارامتری در آن لحاظ نکرد.

 

package com.site.psrd.Cratemethod;

/**
 * Created by hamed on 06/19/2017.
 */
public class MyClass {



public MyClass() {

        }


 public static void mymethod(){
     // سطوح دسترسی عمومی به این متد

 }
    private  static  void mymethod2( String nameintput){
        // سطوح دسترسی اختصاصی به این متد

    }
        }

 

کپی برداری از محتوای سایت psrd، ممنوع بوده و پیگرد قانونی دارد. (تنها استفاده شخصی کاربران ، مجاز است) (کپی برداری توسط سایر وب سایت ها  غیرقانونی و حرام است).

 


1 دیدگاه

مصیب · آگوست 10, 2018 در 2:59 ب.ظ

سلام
من توی یک اکتیویتی یک کلاس رو می خوام فراخوانی کنم و می خوام کلاس مقداری رو برگردونه و در اکتیویتی تا مقدار بازگشتی کلاس نیومده اکتیویتی کاری انجام نده.
ایا راهی داره

دیدگاهتان را بنویسید

Avatar placeholder

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *