Fragment wykładu z mentorem w ramach kursu Codegym University. Zapisz się na pełny kurs.


„Czy już tu jesteś, Amigo? Wiem, że nauczyłeś się już wielu komend Javy. Prawie osiągnąłeś mój poziom!”

– Czy to prawda, Diego?

"Oczywiście, że nie, ha-ha. Nadal masz dużo nauki i nauki do zrobienia. Mimo to wiesz już wystarczająco dużo, aby pisać dość złożone programy. 10, 20, 30 linii kodu w programie to nie jest bardzo duży program, Prawidłowy?"

„Chyba masz rację. Zwłaszcza jeśli wstawisz nawiasy klamrowe w osobnych liniach”.

„Ale program składający się z ponad 100 wierszy, teraz to jest duży. Nawet my, roboty, mamy dość trudności ze zrozumieniem takiego kodu. Jak myślisz, czy jest coś, co możesz zrobić, aby w jakiś sposób uprościć pisanie i czytanie programów, które mają dużo kodu?

— Mam szczerą nadzieję!

„Wasze nadzieje nie są płonne. Programy można uprościć, a metody są tutaj, aby nam w tym pomóc. Nazywa się je czasami funkcjami .

„Funkcje, metody… Uh, czym one są?”

„Mówiąc bardzo prosto, metoda to grupa poleceń, która ma unikalną nazwę . Innymi słowy, po prostu umieszczamy kilka poleceń w jednej grupie i nadajemy jej unikalną nazwę. I to wszystko — bum — mamy metodę. Większość często te polecenia są pogrupowane zgodnie z pewnym uzasadnieniem w celu rozwiązania małego i konkretnego zadania, na przykład „metoda drukowania wierszy z pliku” lub „metoda podnoszenia liczby do wykładnika”.

„Więc podzieliliśmy program na metody?”

„Tak, i upraszcza kod.

Przykład:

Bez metody Z metodą
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");
   }
}

„W programie w lewej kolumnie powtarzamy ten sam kod trzy razy — zrobiliśmy to celowo, aby zilustrować pewną kwestię. Ale w programie po prawej stronie przenieśliśmy powtarzany kod do oddzielnej metody i nadaliśmy jej unikalną nazwę — printWiFi.

I zamiast przeniesionego kodu wywołujemy printWiFi()metodę 3 razy.

„Kiedy uruchamiany jest program w kolumnie po prawej stronie, za każdym razem, gdy printWiFi()wykonywana jest metoda, printWiFi()wykonywane są wszystkie polecenia wewnątrz metody. Właśnie stworzyliśmy nowe polecenie (metodę), łączące kilka poleceń w jedną grupę.

„Każdy kod można podzielić na osobne metody. Ma to na celu uproszczenie rzeczy: chodzi o to, że lepiej jest mieć wiele małych metod niż jedną dużą.

„To świetny pomysł, aby podzielić program na metody.

„Wkrótce z podziwem przypomnisz sobie, jak kiedyś pisałeś programy bez tworzenia własnych metod”.

„Jestem gotów słuchać i próbować pisać metody! Po prostu powiedz mi, jak to zrobić”.

Deklarowanie metody w Javie

„Jak możemy zadeklarować najprostszą metodę? Oto jak:

public static void name()
{
  method body
}

Gdzie namejest unikalną nazwą metody i method bodyreprezentuje polecenia, które składają się na metodę. Znaczenie słów public, static, i voidzostanie omówione później.

„Po utworzeniu metody możemy ją wywołać w innych naszych metodach. Wywołanie metody wygląda następująco:

name();

„Gdzie namejest unikalna nazwa metody, którą chcemy wywołać, tj. metody, której polecenia chcemy wykonać, gdy dojdziemy do wywołania metody.

„Kiedy program osiągnie wywołanie metody, po prostu wejdzie do metody, wykona wszystkie jej polecenia, powróci do oryginalnej metody i będzie kontynuował wykonywanie.

„A teraz, Amigo, spójrz nowymi oczami na komendy, których już się nauczyłeś. Na przykład: Czy coś przychodzi Ci do głowy odnośnie tego, co to naprawdę jest?”System.out.println()

„Czy chcesz powiedzieć, że wszystkie te polecenia to tylko metody napisane przez innych programistów?”

„Nie wszystkie, ale wiele z nich. Tak, dokładnie! Inni napisali je, aby ułatwić nam życie”.

„Tak public static void main(String[] args)samo jest z metodą… Teraz ma to większy sens!”

„Oczywiście, że tak! To programowanie! Okazuje się, że główna metoda — alfa i omega programu — może zawierać wywołania innych metod:

Kod Notatka
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");
   }
}




Wywołujemy print10TimesWiFi()metodę


Deklarujemy print10TimesWiFimetodę


Wywołujemy printWiFi() metodę 10 w pętli


Deklarujemy printWiFimetodę

Wyświetlamy " Wi-Fi" na ekranie

Fakty dotyczące metod

„Odłożyłem dla ciebie kilka przydatnych faktów na temat metod. Ciesz się:

Fakt 1. Metoda jest zawsze częścią klasy.

Metodę można zadeklarować tylko w klasie. Metody nie można zadeklarować wewnątrz innej metody. Metody nie można zadeklarować poza klasą.

Fakt 2. Nazwa metody nie ma świętego znaczenia

Nie ma znaczenia, jakie metody są nazywane — to nie ma wpływu na nic. Główna metoda jest metodą taką jak wszystkie inne. Po prostu ta nazwa została wybrana dla metody, od której maszyna Java rozpocznie wykonywanie programu. Nie ma w tym nic magicznego. To powiedziawszy, lepiej jest wybrać nazwy metod, które przynajmniej wyjaśniają, do czego służą. Porozmawiam o tym trochę później.

Fakt 3. Kolejność metod w klasie nie ma znaczenia

Możesz pisać swoje metody w klasie w dowolnej kolejności — nie wpłynie to w żaden sposób na działanie programu. Przykład:

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. Zmienne wewnątrz jednej metody nie są w żaden sposób powiązane ze zmiennymi innych metod

Co dzieje się w Vegas, zostaje w Vegas. A zmienne zadeklarowane wewnątrz metody pozostają wewnątrz metody.

Zmienne o tych samych nazwach można zadeklarować w dwóch sąsiadujących ze sobą metodach, a zmienne te nie są ze sobą w żaden sposób powiązane.

Nazwy metod

„Więc… obiecałem, że opowiem ci o nazwach metod. Od dawna wiadomo, że dwa najtrudniejsze problemy w programowaniu to wybór właściwych nazw metod i wybór właściwych nazw zmiennych”.

„Nigdy nie myślałem, że to takie trudne!”

„Po prostu nie wiedziałeś zbyt wiele o niejasnym kodzie innych, w którym zmienne i metody mają dowolne nazwy. Po prostu spróbuj rozgryźć ten kod. W rzeczywistości pojawiła się prawie cała nauka dotycząca tego, jak poprawnie nazywać metody. A każdy język programowania ma własne standardy.

„W Javie zwyczajowo przestrzega się następujących zasad:

Zasada 1. Nazwa metody powinna krótko opisywać, co robi metoda.

Następnie inny programista czytający twój kod może polegać na nazwie metody, aby odgadnąć, co robi kod. Nie będzie musiał za każdym razem patrzeć na kod wywoływanych metod. A cel metod jest łatwiejszy do zapamiętania.

Na przykład służy do „uśpienia programu” i do „odczytania następnej liczby całkowitej”. Wygodne, co?Thread.sleep()Scanner.nextInt()

Zasada 2. Nazwa metody może składać się z wielu słów.

Istnieje jednak kilka ograniczeń podczas wykonywania tej czynności:

  • W nazwie metody nie może być spacji: wszystkie słowa są pisane razem.
  • Każde słowo jest pisane wielką literą, z wyjątkiem pierwszego.
  • Nazwa metody zawsze zaczyna się od małej litery

Zapamiętaj print10TimesWiFimetodę. Co oznacza ta nazwa? „Wyświetl słowo„ WiFi ”10 razy”. Nie powinieneś zawierać wielu słów w nazwie metody: nazwa powinna odzwierciedlać samą jej istotę.

Ten standard nazewnictwa metod nosi nazwę CamelCase (wielkie litery są jak garby wielbłąda).

Zasada 3. Nazwa metody zaczyna się od czasownika.

Metoda zawsze coś robi, więc pierwsze słowo w nazwie metody to zawsze akcja.

Oto kilka złych nazw metod: home, cat, car, train, ...;

Niektóre dobre imiona to: run, execute, print, read, write, ...

Zasada 4. Nazwa metody wykorzystuje wyłącznie litery i cyfry łacińskie.

Java ma doskonałe wsparcie dla różnych języków. Nazwy zmiennych, metod i klas możesz pisać zarówno po rosyjsku, jak i po chińsku — wszystko będzie działać!

Ale! Wyobraź sobie, jak długo musiałbyś uczyć się Javy, gdyby metoda System.out.println()była napisana po chińsku?

Znacznie dłużej niż teraz, prawda? To pierwszy punkt.

Po drugie, wiele zespołów programistów ma charakter międzynarodowy. Bardzo duża liczba bibliotek Javy jest używana przez programistów z całego świata.

Dlatego zaleca się używanie w nazwach metod wyłącznie liter i cyfr łacińskich.

Ważny:

Nazwa metody musi zaczynać się od litery (nie może zaczynać się od cyfry).

„To są wszystkie podstawowe zasady rządzące nazewnictwem metod w Javie. Lekcja się skończyła. Idź rozwiązywać zadania!”

- Już biegnę, Diego!


Fragment wykładu z mentorem w ramach kursu Codegym University. Zapisz się na pełny kurs.