CodeGym /Kursy /JAVA 25 SELF /Deklarowanie i wywoływanie metod, parametry

Deklarowanie i wywoływanie metod, parametry

JAVA 25 SELF
Poziom 8, Lekcja 2
Dostępny

1. Składnia deklaracji metody

Deklaracja metody w Javie przypomina przepis w książce kucharskiej: wskazujesz, co metoda zwraca (typ), jak się nazywa, jakie składniki (parametry) są potrzebne i piszesz sam przepis (ciało metody).

Forma ogólna:


type_returned_value nameMetoda(parametry)
{
    // tutaj piszemy polecenia
}
Ogólna postać deklaracji metody
  • typ wartości zwracanej — co metoda zwraca (na przykład int, void — jeśli nic nie zwraca, String itp.).
  • nazwa metody — wymyślona przez ciebie nazwa (zgodnie z zasadami Javy).
  • parametry — lista zmiennych, których metoda będzie używać (może być pusta).
  • ciało metody — twoje polecenia w klamrach { }.

Przykłady metod bez parametrów

void printHello() 
{
    System.out.println("Cześć, świecie!");
}

Wyjaśnienie: void — metoda nic nie zwraca; printHello — nazwa; () — brak parametrów.

Przykład metody z parametrami

void printName(String name) 
{
    System.out.println("Cześć, " + name + "!");
}

Wyjaśnienie: void — nic nie zwraca; printName — nazwa metody; String name — jeden parametr typu String.

Przykład metody z kilkoma parametrami

void printSum(int a, int b) 
{
    System.out.println("Suma: " + (a + b));
}

Wyjaśnienie: parametry podaje się po przecinku. Wewnątrz metody używamy ich jak zwykłych zmiennych, operator + wykonuje dodawanie.

Ważne!

  • Metody deklaruje się wewnątrz klasy, ale NIE wewnątrz innych metod.
  • W Javie nie można deklarować metod wewnątrz innych metod — żadnych „matrioszek”.

2. Wywołanie metody

Zadeklarować metodę — to jak powiesić tabliczkę „Zrobię kawę”. A żeby kawa faktycznie się pojawiła, trzeba wywołać metodę — napisać jej nazwę i przekazać wartości parametrów.

Jak wywołać metodę

Jeśli metoda znajduje się w tej samej klasie i jest zadeklarowana jako static (tak jak main), można wywołać ją po prostu po nazwie:

printHello();
printName("Alicja");
printSum(3, 5);

Jeśli metoda nie jest static, trzeba wywoływać ją przez obiekt (o tym później, gdy będziemy omawiać klasy i obiekty).

Przykład: wywołanie metody z main


public class MethodsDemo
{
    public static void main(String[] args) 
    {
        printHello();
        printName("Bob");
        printSum(10, 20);
    }

    static void printHello() 
    {
        System.out.println("Cześć, świecie!");
    }

    static void printName(String name) 
    {
        System.out.println("Cześć, " + name + "!");
    }

    static void printSum(int a, int b) 
    {
        System.out.println("Suma: " + (a + b));
    }
}

Zwróć uwagę: metody są zadeklarowane z modyfikatorem static, aby można je było wywołać z main (który też jest static).

3. Parametry i argumenty: co to jest?

Parametry — to zmienne deklarowane w nawiasach przy deklaracji metody.
Argumenty — to rzeczywiste wartości, które przekazujesz przy wywołaniu metody.

Analogia: Parametry — jak lista zakupów; argumenty — to, co faktycznie wkładasz do koszyka.

Przykład


      static void greet(String name)  // name — parametr
{
    System.out.println("Cześć, " + name + "!");
}

public static void main(String[] args) 
{
    greet("Kasia"); // "Kasia" — argument
    greet("Wasia"); // "Wasia" — argument
}

Gdy wywołujesz greet("Kasia"), wewnątrz metody zmienna name przyjmie wartość "Kasia".

Kilka parametrów


      static void printInfo(String name, int age)
{
    System.out.println("Imię: " + name + ", wiek: " + age);
}

public static void main(String[] args) 
{
    printInfo("Masza", 25);
    printInfo("Piotr", 31);
}

Uwaga! Typy i kolejność parametrów muszą się zgadzać z tym, jak zadeklarowałeś metodę.

4. Praktyka: piszemy własne metody

Metoda, która wypisuje powitanie z imieniem użytkownika


static void sayHelloTo(String name)
{
    System.out.println("Cześć, " + name + "!");
}

public static void main(String[] args)
{
    sayHelloTo("Andrzej");
    sayHelloTo("Elwira");
}

Metoda, która liczy sumę dwóch liczb


static void printSum(int a, int b)
{
    int sum = a + b;
    System.out.println("Suma: " + sum);
}

public static void main(String[] args) 
{
    printSum(7, 8);
    printSum(15, -5);
}

Metoda, która wypisuje elementy tablicy


      static void printArray(int[] array)
{
    System.out.print("Tablica: ");
    for (int i = 0; i < array.length; i++) 
    {
        System.out.print(array[i] + " ");
    }
    System.out.println();
}

public static void main(String[] args) 
{
    int[] nums = {1, 2, 3, 4, 5};
    printArray(nums);
}

Metoda, która wypisuje n razy ten sam wiersz


      static void repeatPrint(String text, int n)
{
    for (int i = 0; i < n; i++) 
    {
        System.out.println(text);
    }
}

public static void main(String[] args) 
{
    repeatPrint("Java jest super!", 3);
}

5. Jak metody pomagają budować aplikację

Jeśli postanowisz napisać prostą grę konsolową albo kalkulator, kod będzie bardziej zrozumiały, jeśli każde zadanie wydzielisz do osobnej metody.

Przykład: mini-kalkulator


public class Calculator
{
    public static void main(String[] args) 
    {
        printGreeting();
        printSum(3, 7);
        printDifference(10, 4);
    }

    static void printGreeting() 
    {
        System.out.println("Witamy w kalkulatorze!");
    }

    static void printSum(int a, int b) 
    {
        System.out.println("Suma: " + (a + b));
    }

    static void printDifference(int a, int b) 
    {
        System.out.println("Różnica: " + (a - b));
    }
}

W przyszłości będziesz mógł/mogła dodawać nowe metody (mnożenie, dzielenie, praca z tablicami liczb itp.), a aplikacja będzie się rozwijać, nie zamieniając się w długi blok kodu.

6. Przydatne niuanse

Nazwy metod

  • Nazwa metody zwykle zaczyna się małą literą i jest pisana w stylu camelCase: printSum, sayHelloTo, calculateArea.
  • Nazwa powinna odzwierciedlać działanie. Unikaj doStuff i method1.

Kolejność parametrów

  • Przestrzegaj kolejności i typów parametrów przy wywołaniu.
  • Jeśli metoda przyjmuje printInfo(String name, int age), nie można wywołać printInfo(25, "Masza").

Czy można zadeklarować dwie metody o tej samej nazwie?

Tak, jeśli mają inny listę parametrów (inne typy lub liczbę). To przeciążenie metod:

static void printSum(int a, int b) { /* ... */ }
static void printSum(int a, int b, int c) { /* ... */ }

Temu tematowi będzie poświęcony osobny wykład — na razie wystarczy wiedzieć, że Java nie ogranicza do jednej metody o danej nazwie.

7. Typowe błędy przy pracy z metodami i parametrami

Błąd nr 1: Niezgodna liczba lub typy parametrów przy wywołaniu.
Jeśli metoda jest zadeklarowana jako printSum(int a, int b), a wywołujesz ją jako printSum(5), kompilator powie, że taka metoda nie istnieje. Podobnie, printSum("pięć", 7) — błąd typów.

Błąd nr 2: Mylenie parametrów i argumentów.
W deklaracji metody pisze się parametry (na przykład int a, int b), a przy wywołaniu — argumenty (printSum(5, 7)). Nie trzeba tworzyć w main zmiennych o tych samych nazwach — ważniejsze jest dopasowanie typów i kolejności.

Błąd nr 3: Próba zadeklarowania metody wewnątrz metody.
W Javie metody deklaruje się tylko na poziomie klasy. Wewnątrz innej metody deklarować ich nie wolno.

Błąd nr 4: Brak użycia static przy wywołaniu z main.
Jeśli wywołujesz metodę z main, dodaj static do deklaracji albo utwórz obiekt i wywołaj metodę na nim. Szczegóły — później, przy omawianiu OOP.

1
Zadanie
JAVA 25 SELF, poziom 8, lekcja 2
Niedostępne
Osobiste powitanie dla nowego użytkownika 👋
Osobiste powitanie dla nowego użytkownika 👋
1
Zadanie
JAVA 25 SELF, poziom 8, lekcja 2
Niedostępne
Szybkie obliczanie kosztu zakupu 💰
Szybkie obliczanie kosztu zakupu 💰
1
Zadanie
JAVA 25 SELF, poziom 8, lekcja 2
Niedostępne
Tworzenie karty pracownika dla działu kadr 👩‍💻
Tworzenie karty pracownika dla działu kadr 👩‍💻
1
Zadanie
JAVA 25 SELF, poziom 8, lekcja 2
Niedostępne
Projektowanie różnych kształtów i rozmiarów obiektów 📐
Projektowanie różnych kształtów i rozmiarów obiektów 📐
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION