[Explained] Jak wywołać metodę w Javie

Metoda w Javie to nic innego jak fragment kodu wielokrotnego użytku, który można wykonać na żądanie.

Metody są często nazywane funkcjami i można zauważyć, że oba słowa są używane zamiennie.

Znaczenie używania metod lub funkcji

Twórcy oprogramowania rozwiązują problem, dzieląc go na mniejsze problemy i rozwiązując je w celu rozwiązania problemu jako całości. Pomysł ten doprowadził do tak zwanej architektury modułowej. W tym podejściu programiści rozkładają kod na części, które można przenosić i wykonywać w celu rozwiązania większego problemu.

Metody są korzystne, ponieważ można ich używać w różnych przypadkach w całej aplikacji. Powiedzmy, że chcesz stworzyć metodę użytkową, aby usunąć wszystkie niepotrzebne spacje ze zdania. Czy ma sens pisanie logiki za każdym razem, gdy jej potrzebujesz gdzieś w swojej aplikacji?

A może ma sens jednorazowe utworzenie metody, a następnie użycie tej samej metody z różnymi danymi wejściowymi w wielu miejscach aplikacji? Ten drugi jest oczywiście lepszy i wydajniejszy.

Co więcej, za pomocą modyfikatorów dostępu w Javie możesz nawet kontrolować, które metody są faktycznie współużytkowane w aplikacji, a które nie. Pomaga także sprawić, by Twój kod wyglądał na bardziej czytelny, uporządkowany i uporządkowany.

Rodzaje metod w Javie

Istnieją dwa rodzaje metod w Javie: metody zdefiniowane przez użytkownika i metody predefiniowane. Metody zdefiniowane przez użytkownika, jak sama nazwa wskazuje, są definiowane jawnie przez programistę. Przykładem metody zdefiniowanej przez użytkownika może być:

public int sum(int a, int b) {
    return a + b;
}

Z drugiej strony, predefiniowane lub wbudowane metody są już częścią języka programowania Java. Przykładem wbudowanej metody może być:

String text = "Hello World";
text.toLowerCase();

Tutaj toLowerCase jest wbudowaną metodą Java, którą można wywołać z dowolnego miejsca w kodzie.

Struktura metody w Javie

Przyjrzyjmy się idealnej strukturze metody w Javie:

[access_modifier] [return_type] method_name(...parameters) {
    // method body
}

Te składniki metody muszą być określone w kolejności. Na przykład metody nie można zdefiniować przed zwracanym typem i podobnie. Poznajmy funkcje każdego z tych komponentów składających się na metodę i jak ze sobą współpracują.

# 1. Modyfikator dostępu

W Javie modyfikatory dostępu to słowa kluczowe określające widoczność metody, klasy, interfejsu, zmiennej itp. Technicznie rzecz biorąc, w Javie istnieje pięć modyfikatorów dostępu:

  • publiczny: dostępny dla wszystkich klas
  • private: dostępny tylko dla klasy, do której należy
  • default: domyślny modyfikator dostępu jest podobny do modyfikatora protected, w którym metoda jest dostępna tylko wewnątrz tego samego pakietu
  • chroniony: dostępny w ramach podklas lub określonego pakietu
public int sum(a int, b int) {
    return a + b;
}

Tutaj metoda calc ma modyfikator dostępu jako public, a zatem będzie dostępna z dowolnego miejsca.

#2. Typ zwrotu

Typ zwracany przez funkcję określa typ danych, które funkcja ma zwrócić. Jeśli nie chcesz niczego zwracać z funkcji, w takim przypadku określ typ zwrotu void. Słowa kluczowego return nie można użyć, gdy określono typ void. Określenie zwracanego typu jest koniecznością w celu zdefiniowania funkcji.

public void log(String text) {
    System.out.println(text);
}

Powyższa metoda niczego nie zwraca; to tylko drukowanie tekstu na konsoli. A zatem typ zwrotu void.

#3. Nazwa metody

Identyfikuje metodę w klasie i służy do wywołania metody z obiektu.

class Print {
    void log(String text) {
        System.out.println(text);
    }
}

Print p = new Print();
p.log("hello world"); // outputs "hello world"

#4. Parametry

Możesz przekazywać argumenty do metod zgodnie ze zdefiniowanymi w nich parametrami. Na przykład, jeśli dla metody zdefiniowano dwa parametry, można przekazać tylko dwa argumenty z odpowiednimi typami danych. I musisz przekazać argumenty w kolejności, w jakiej zostały zdefiniowane.

class Calc {
    int sum(a int, b int) {
        return a + b;
     }
}

Calc cal = new Calc();
cal.sum(3, 7); // will return 10

#5. Ciało

Treść metody zawiera logikę programowania używaną do zwracania określonego wyniku. Pełni funkcję, którą metoda ma spełniać. Jest ujęty w nawiasy klamrowe i jest często określany jako blok kodu.

class Calc {
    int sum(a int, b int) {
        return a + b;
     }
}

Tutaj instrukcja return wewnątrz nawiasów klamrowych jest treścią sumy metody.

Metody wywoływania w Javie

Wywoływanie metod w Javie jest dość proste. Metodę można wywołać po nazwie z instancji klasy, w której się znajduje.

Metody statyczne można wywoływać bez instancji obiektu klasy, w której się one znajdują. Metody niestatyczne muszą być ściśle wywoływane z instancji klasy, innymi słowy z obiektu.

W przypadku metod statycznych wywołanie wygląda następująco:

class Math {
    public static int sum(int a, int b) {
        return a + b;
    }
}

public class Main {
    public static void main(String[] args) {
        int add = Math.sum(5, 2);
        System.out.println(add);
    }
}

W powyższym kodzie metoda sum wewnątrz klasy Math jest metodą statyczną. I to jest powód, dla którego nie musisz tworzyć obiektu (instancji) klasy Math, wystarczy wywołać metodę z samej klasy.

Z drugiej strony, w przypadku metod niestatycznych wywołanie wygląda następująco:

class Math {
    public int sum(int a, int b) {
        return a + b;
    }
}

public class Main {
    public static void main(String[] args) {
        int add = new Math().sum(5, 2);
        System.out.println(add);
    }
}

Tutaj tworzysz nowy obiekt z klasy Math, a następnie wywołujesz metodę sum. Powodem tego jest fakt, że metody niestatyczne nie są tworzone do momentu utworzenia instancji klasy.

W ten sposób możesz wywołać metodę w Javie.

Ostatnie słowa

Nie tylko w Javie, ale w każdym innym języku programowania metody to świetny sposób na uporządkowanie kodu i ponowne wykorzystanie ich w wielu miejscach. Metody są budulcem architektury modułowej i opartej na komponentach.

Jeśli interesujesz się Javą, dowiedz się więcej o obsłudze wyjątków w Javie.