CodeGym /Kurslar /Java SELF AZ /Öz funksiyalarını yaratmaq, parametrlərin ötürülməsi

Öz funksiyalarını yaratmaq, parametrlərin ötürülməsi

Java SELF AZ
Səviyyə , Dərs
Mövcuddur

1. Java-da Funksiyalar/Metodlar

Artıq Java-da çoxlu sayda komandaları öyrəndiniz və bu, o deməkdir ki, kifayət qədər mürəkkəb proqramlar yaza bilərsiniz. Proqramda 10, 20, 30 sətirlik kod — o qədər də böyük proqram deyil, elə deyilmi?

Amma 100+ sətirlik proqram artıq böyükdür və onun kodunu başa düşmək bir az çətindir. Bəs çox sayda kodu olan proqramların yazılmasını və oxunmasını necə asanlaşdıra bilərik?

Bəli, bunu metodlar (funksiyalar) ilə edə bilərik.

Bəs metod nədir? Vallah, çox sadə desək, metod — unikal addan ibarət bir qrup komandadır. Başqa sözlə, sadəcə bir neçə komandaları bir qrupa birləşdiririk və ona unikal ad veririk. Vəssalam — metod hazırdır.

Nümunə:

Metodsuz Metod ilə
class Solution
{
   public static void main(String[] args)
   {
     System.out.print("Wi-");
     System.out.println("Fi");
     System.out.print("Wi-");
     System.out.println("Fi");

     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void main(String[] args)
   {
     printWiFi();
     printWiFi();
     printWiFi();
   }
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}

Sol sütundakı proqramda eyni kodu üç dəfə təkrar etmişik — bunu nümunə üçün xüsusi olaraq etdik. Sağdakı proqramda isə təkrarlanan kodu ayrıca bir metoda çıxardıq və ona unikal ad verdik — printWiFi.

Və çıxardığımız kodun əvəzinə 3 dəfə metodun çağırışını yazdıq — printWiFi().

Sağ sütundakı proqram icra olunanda, hər dəfə printWiFi() əmri işə düşəndə, metodun içindəki bütün komandalar yerinə yetiriləcək. Biz sadəcə bir neçə komandaları bir qrupa birləşdirərək yeni bir əmr (metod) yaratdıq.

Hər hansı kodu ayrıca metodlara bölmək olar. Bu, işi asanlaşdırmaq üçün edilir: deyilir ki, bir böyük metoddan çox, kiçik metodların çox olması daha yaxşıdır. Tezliklə siz bir zamanlar öz proqramlarınızı yazdığınız, amma metodlarınızı yazmadığınız üçün təəccüblənəcəksiniz.


2. Java-da metod elan etmək

Bəs necə düzgün şəkildə öz metodumuzu yaza bilərik?

Metod elan edərkən (yəni yaradanda) bir çox incəliyi nəzərə almaq lazımdır, amma gəlin əsasdan başlayaq. Ən sadə metodu elan etmək üçün nə etməliyik? Sadə bir metodun elanı belə görünür:

public static void ad()
{
   metodun kodu
}

Burada ad — metodun unikal adı, metodun kodu isə metodun tərkibində olan əmrlərdir. public, staticvoid kimi sözləri isə daha sonra ətraflı öyrənəcəyik.

Metodu yaratdıqdan sonra onu digər metodlarımızda çağıra bilərik. Çağırış belə görünür:

ad();

Burada ad — çağırmaq istədiyimiz metodun unikal adı və həmin metodun əmrlərini icra etmək üçün lazım olan yerdir.

Proqram bizim metod çağırışımıza çatanda, sadəcə həmin metoda keçəcək, onun bütün əmrlərini icra edəcək, ilkin metoda qayıdacaq və icranı davam edəcək.

Yəqin ki, artıq anlamısınız, əvvəllər öyrəndiyimiz bir çox əmrlər əslində digər proqramçılar tərəfindən bizim işimizi asanlaşdırmaq üçün yazılmış metodlardır: System.out.println(), Thread.sleep() və s.

Metodun kodunda digər metod çağırışları ola bilər:

Kod Qeyd
class Solution
{
   public static void main(String[] args)
   {
     printWiFi10Times();
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}




Metodu çağırırıq printWiFi10Times()


Metodu elan edirik printWiFi10Times


Döngüdə metodu çağırırıq printWiFi() 10 dəfə


Metodu elan edirik printWiFi

Ekrana yazdırırıq:
Wi-Fi

3. Metodlar haqqında faktlar

Metodlar haqqında bir neçə fakt:

Fakt 1. Metod həmişə bir class-ın hissəsidir.

Metodu yalnız class daxilində elan etmək olar. Metodu başqa bir metodun içində elan etmək mümkün deyil. Metodu class-dan kənarda elan etmək mümkün deyil.

Fakt 2. Metodun adı xüsusi bir mənaya malik deyil

Metodların adlarının nə olduğu fərq etmir — bu heç bir şeyə təsir etmir. Main metodu da digər metodlar kimi eyni funksiyaya malikdir. Sadəcə Java maşını proqramın icrasına başladığı metodu belə adlandırmağı seçib. Burada heç bir sirli məqam yoxdur.

Fakt 3. Class-dakı metodların sırası vacib deyil

Class daxilində metodlarınızı hər hansı bir sırayla yazmaq olar — bu proqramın icrasına heç bir təsir göstərmir. Misal:

Kod
class Solution
{
   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
        printWiFi();
   }
   
   public static void main(String[] args)
   {
      printWiFi10Times();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
        printWiFi();
   }
   public static void main(String[] args)
   {
      printWiFi10Times();
   }
}

Fakt 4. Bir metodun daxilindəki dəyişənlər digər metodların dəyişənləri ilə əlaqəli deyil

Veqasda baş verənlər, Veqasda qalır. Metod daxilində elan olunan dəyişənlər də həmin metod daxilində qalır.

Yaxınlıqdakı iki metoddakı dəyişənlər eyni adlara malik ola bilər və bu dəyişənlər bir-birinə heç bir şəkildə təsir etmir.


4. Metodların adları

Artıq çoxdan məlumdur ki, proqramlaşdırmada iki ən çətin məsələ var — metodu necə düzgün adlandırmaq və dəyişəni necə adlandırmaq.

Əslində, artıq metodların adlandırılması haqqında demək olar ki, bir elm var. Və hər proqramlaşdırma dilinin öz standartları var. Java-da bu prinsiplərə riayət etmək qəbul edilir:

Prinsip 1. Metodun adı onun nə etdiyini qısa şəkildə təsvir etməlidir.

Onda kodunuzu oxuyan proqramçı metodun adı ilə onun nə etdiyini anlayacaq və hər dəfə çağırılan metodların koduna baxmağa ehtiyac olmayacaq. Həm də metodların məqsədini yadda saxlamaq daha asandır.

Məsələn, Thread.sleep() — “programı yatızdır” və Scanner.nextInt() — “növbəti tam ədəd oxu”. Rahatdır, elə deyilmi?

Prinsip 2. Metodun adı bir neçə sözdən ibarət ola bilər.

Ancaq bu halda bir neçə məhdudiyyət var:

  • Metodun adında boşluqlar yazmaq olmaz: bütün sözlər ardıcıl yazılır.
  • Hər bir söz böyük hərflə yazılır, birincidən başqa.
  • Metodun adı həmişə kiçik hərflə yazılır.

Məsələn, printWiFi10Times metodu. Bu ad nə deməkdir? “WiFi sözünü 10 dəfə yaz”. Çox söz yazmağa ehtiyac yoxdur: ad əsas məqama işarə etməlidir.

Bu cür yazı standartı CamelCase adlanır (Camel — dəvə. Böyük hərflər dəvənin hörgüclərinə bənzəyir).

Prinsip 3. Metodun adı fel ilə başlamalıdır.

Metod həmişə nəsə edir, buna görə də metodun adındakı ilk söz həmişə hərəkəti ifadə edir.

Metod üçün pis adlar: home, cat, car, train, ...;

Yaxşı adlar: run, execute, print, read, write, ...

Prinsip 4. Yalnız latın hərflərindən və rəqəmlərdən istifadə edin

Java müxtəlif dilləri çox yaxşı dəstəkləyir. Dəyişənlərin, metodların və siniflərin adlarını istəsəniz, rus, istəsəniz, çin dilində yazın — hər şey işləyəcək!

Ancaq! Əgər System.out.println() metodu çin dilində adlansaydı, Java-nı öyrənmək nə qədər vaxt aparardı? İndikindən daha uzun çəkərdi, elə deyilmi? Bu, birincisi.

İkincisi, bir çox layihələrdə beynəlxalq komandalar çalışır. Dünyanın hər yerindən olan proqramçılar Java kitabxanalarından istifadə edir.

Ona görə də metodların adında yalnız latın hərflərindən və rəqəmlərdən istifadə etmək tövsiyə olunur.

Vacibdir:
Metodun adı mütləq hərflə başlamalıdır (rəqəmlə başlamaq olmaz).

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION