1. Operatorreturn
Myślisz, że nauczyłeś się już wszystkiego o metodach w Javie? Tak czy inaczej, nadal nie znasz połowy z tego.
Zacznijmy od czegoś prostego. Na przykład Java ma polecenie (operator) return , które pozwala na natychmiastowe zakończenie metody, w której została wywołana. Wygląd drużyny:
return;
Wszystko: tylko jedno słowo returni średnik. Gdy tylko program wykona to polecenie, praca bieżącej metody natychmiast się zakończy, a praca metody wywołującej będzie kontynuowana.
Jeśli returnzostanie wywołana metoda main, metoda mainnatychmiast się zakończy, a wraz z nią cały program.
Przykład:
|
Metoda fill wypełnia część przekazanej tablicy wartością value. Część tablicy jest zdefiniowana przez indeksy from i to. Jeśli from jest mniejsza 0lub to większa niż długość tablicy, metoda kończy się natychmiast. |
Powyższy program posiada metodę fill, która wypełnia przekazaną do niego tablicę wartością valuei wypełnia nie całą tablicę, ale jej część określoną przez indeksy fromi to.
Na początku metody fill sprawdzane jest, czy przekazywane do niej wartości są poprawne. Jeśli fromjest mniejsza niż 0 lub towiększa niż długość tablicy, to metoda fill kończy się natychmiast (wywołuje polecenie return).
Przydatną rzeczą jest ten operator return: jest w prawie każdej metodzie w Javie, a oto dlaczego.
2. Funkcje z wynikiem,void
Pamiętaj, kiedyś analizowaliśmy, że są polecenia, ale są wyrażenia . A wyrażenie, w przeciwieństwie do polecenia, ma wartość, której można użyć w dowolnym miejscu.
Tak więc w Javie metody mogą mieć znaczenie . I to jest bardzo dobra wiadomość: metody mogą nie tylko zrobić coś w zależności od parametrów, ale też np. coś obliczyć i zwrócić wynik obliczeń .
Nawiasem mówiąc, czy spotkałeś się już z takimi metodami:
|
Metoda abs()zwraca podwójną wartość |
|
Metoda nextInt()zwraca wartość typuint |
|
Metoda toUpperCase()zwraca wartość typuString |
|
Metoda copyOf()zwraca wartość typuint[] |
Każda metoda może zwrócić tylko jedną wartość i jeden predefiniowany typ. Zwracany typ jest określany podczas deklarowania metody:
public static тип Nazwa(параметры)
{
kod метода
}
Gdzie Nazwa to nazwa metody, параметры to lista parametrów metody i тип typ wyniku zwracanego przez metodę.
W przypadku metod, które nic nie zwracają, istnieje specjalny typ kodu pośredniczącego - void.
Czy piszesz własną metodę i nie chcesz zwracać niczego do metody wywołującej? Wystarczy zadeklarować typ metody voidi problem zostanie rozwiązany. Istnieje również wiele takich metod w Javie.
3. Zwrócenie wyniku
Właśnie wymyśliliśmy, jak zadeklarować metodę z wynikiem obliczenia / pracy, ale jak możemy zwrócić ten wynik z samej metody?
Aby to zrobić, ponownie potrzebujemy operatora return. Przekazanie wyniku z metody wyglądałoby tak:
return oznaczający;
Gdzie returnjest instrukcja, która natychmiast zakończy działanie metody. A oznaczający to wartość, którą metoda powinna w rezultacie zwrócić metodzie wywołującej. Typ значенияmusi być zgodny z typem типомokreślonym podczas deklarowania metody.
Przykład 1. Metoda oblicza minimum z dwóch liczb:
|
Metoda zwraca minimum dwie liczby. Jeśli a < bpowrót aW przeciwnym razie powrót b |
Przykład 2. Metoda duplikuje przekazany do niej łańcuch nrazy:
|
Metoda przyjmuje dwa parametry - ciąg znaków oraz liczbę jego powtórzeń. Dla przyszłego wyniku tworzony jest pusty łańcuch. W cyklu timesczasu do łańcucha resultdodawana jest spacja i ciąg znaków str. Zmienna jest zwracana jako wynik metody result. |
Przykład 3: Metoda oblicza maksymalnie dwie liczby za pomocą operatora trójskładnikowego:
|
Metoda zwraca maksymalnie dwie liczby. powrót (jeżeli a > b, to a, inaczej b) |
GO TO FULL VERSION