Tworzenie własnych metod

Java średnio zaawansowany

Jim White

Java Developer

Dlaczego używamy metod

  • Przydatne do powtarzających się zadań
  • Ponowne wykorzystanie kodu
  • Unikanie powtórzeń (i potencjalnych błędów)
  • Łatwiejsza aktualizacja i poprawianie błędów
  • Don't Repeat Yourself (DRY)
Java średnio zaawansowany

Jak definiować metody

returnType methodName(){

  // Code to be run

}
Java średnio zaawansowany

Metoda void

  • Wykonuje tylko działanie, nic nie zwraca
  • void oznacza nic
void sayHello(){
    System.out.println("Hello there!");
  }
Java średnio zaawansowany

Metoda zwracająca wynik

  • Metody mogą zwracać wynik
    • Do przechowania, późniejszego użycia lub przekazania dalej
    • Np. metoda obliczająca kwadrat liczby
  • Wymagane:
    • Określony typ zwracanej wartości, np. int lub String
    • Instrukcja return
int getSquare() {
  return 5 * 5
}
Java średnio zaawansowany

Konwencja nazewnictwa

Lower camel case

  • Pierwsza litera mała, kolejne słowa zaczynają się wielką literą
  • Przykłady:
    • getSquare()
    • sayHello()
Java średnio zaawansowany

Wielkość liter

Java rozróżnia wielkość liter!

Jeśli metoda nazywa się getSquare(), getsquare() nie zadziała!

Java średnio zaawansowany

Metody wbudowane a niestandardowe

Wbudowane

  • Wywoływane za pomocą notacji z kropką
    • "JAVA".toLowerCase();

Metody niestandardowe

  • Wywoływane bezpośrednio
    • sayHello();
Java średnio zaawansowany

Użycie metody niestandardowej

Kod przedstawiający metodę sayHello zdefiniowaną poza metodą main, ze słowem kluczowym static

"Hello there!"
Java średnio zaawansowany

Podsumowanie

class HelloMethod {
    public static void main (String[] args) {
        sayHello();
        int fiveSquared = getSquare(); // Saving the result of getSquare() as int
    }
    static void sayHello() { // Just prints a message
      System.out.println("Hello there!");
    }
    static int getSquare() { // Returns int 
      return 5*5; 
    }
}
Hello there!
Java średnio zaawansowany

Czas na ćwiczenia!

Java średnio zaawansowany

Preparing Video For Download...