– OK, spróbujmy innego podejścia. Pokażę Ci, jak działa wywoływanie metod, a następnie spróbujesz powtórzyć materiał z poprzedniej lekcji, OK?
– Zróbmy to.
– Świetnie. Opowiem Ci o wywoływaniu funkcji/metod i wartościach, jakie one zwracają (zwracaniu wartości).
– Komendy lub instrukcje są grupowane w metody, dzięki czemu można wykonywać je jako jeden blok, jak jedną złożoną komendę. Aby to zrobić, musisz napisać nazwę metody (funkcji), a następnie w nawiasach podać argumenty tej metody.
package com.codegym.lesson2;
public class WywolanieMetody
{
public static void main(String[] args)
{
print4("Wyginam śmiało ciało.");
}
public static void print4(String s)
{
System.out.println(s);
System.out.println(s);
System.out.println(s);
System.out.println(s);
}
}
– W powyższym przykładzie napisaliśmy funkcję, która wyświetli przekazany ciąg na ekranie cztery razy. Następnie wywołaliśmy funkcję print4
w linii 6.
– Gdy program dojdzie do linii 6, przeskoczy do linii 9, przypisując do zmiennej s wartość 'Wyginam śmiało ciało.'
.
– Następnie wykonywane są linie 11-14. Funkcja kończy się i program zostaje wznowiony od linii 7.
– Rozumiem.
– Możesz nie tylko przekazywać do funkcji argumenty (wartości) — funkcja może też zwracać wynik swojej pracy (zwracana wartość). Odbywa się to za pomocą kluczowego słowa return. Wygląda to tak:
Przykład 1.
Wyznacz minimum z dwóch liczb. |
Oto, jak to działa:
|
– Myślę, że to zaczyna mieć sens! Kod w lewej i prawej kolumnie jest w rzeczywistości taki sam. Po prostu kod po lewej stronie korzysta z wydzielonej funkcji.
– Funkcja oblicza określoną wartość i używa instrukcji return, aby przekazać wartość do elementu, który ją wywołał. A przynajmniej tak to widzę.
– I masz rację!
– Ale czym jest typ void?
– Niektóre funkcje po prostu coś robią bez obliczania lub zwracania wartości, na przykład nasza metoda main(). Dla takich funkcji utworzono specjalny typ zwrotny – void.
– Dlaczego po prostu nie zadeklarujemy nic, skoro funkcja nic nie zwraca?
– Pamiętasz, jak deklarujemy zmienne? Typ i nazwa. W przypadku funkcji deklarujemy typ, nazwę i nawiasy. Nazwa funkcji, po której następują nawiasy, to sposób na wywołanie funkcji.
– Zatem łatwiej było wymyślić pusty 'typ void', zamiast dzielić funkcje na dwie kategorie – te, które zwracają wartości i te, które ich nie zwracają?
– Dokładnie! Jesteś naprawdę bystry, mój chłopcze.
– Jak zwracamy typ void?
– Nie robimy tego. Działa to w ten sposób: Podczas wykonywania instrukcji return maszyna Java oblicza wartość wyrażenia po prawej stronie słowa 'return', zachowuje tę wartość w specjalnym obszarze pamięci i natychmiast kończy funkcję. Zachowana wartość jest używana w miejscu wywołania funkcji jako wynik wywołania tej funkcji. Możesz zobaczyć to w przykładzie, który podałam wcześniej.
– Masz na myśli część, w której int m = min(a, b) jest przekształcane w m = m2?
– Tak. Po zakończeniu funkcji wszystko działa tak, jakby wartość zwrócona przez funkcję była napisana w miejscu wywołania funkcji. Powtórz to zdanie w głowie i spójrz na kod z ostatniego przykładu.
– Myślę, że to tylko wydaje się proste. W rzeczywistości to trudne. Zrozumiałem tylko część.
– W porządku. Przy pierwszej próbie możesz zrozumieć tylko to, co już znasz. Im mniej rozumiesz, tym bardziej zagłębiasz się w coś nowego i tym lepiej to rozumiesz. Z czasem stanie się to jasne.
– Cóż, skoro tak mówisz. Kontynuujmy.
GO TO FULL VERSION