U Javi, metoda predstavlja deo koda koji se može izvršiti više puta, kada je to potrebno.
Metode se često nazivaju i funkcijama, i te reči se u praksi koriste naizmenično.
Značaj upotrebe metoda ili funkcija
Programeri softvera rešavaju probleme tako što ih dele na manje, pojedinačne podprobleme. Zatim rešavaju te podprobleme kako bi dobili rešenje za celokupan problem. Ovaj pristup je doveo do razvoja modularne arhitekture. U ovom konceptu, programski kod se deli na manje celine koje se mogu zasebno razvijati, testirati i ponovo koristiti.
Metode su izuzetno korisne jer se mogu pozivati na različitim mestima unutar aplikacije. Zamislite da treba da kreirate metodu koja uklanja suvišne praznine iz teksta. Da li bi imalo smisla pisati taj kod iznova svaki put kada vam zatreba?
Mnogo je efikasnije kreirati metodu samo jednom, i onda je koristiti sa različitim ulaznim parametrima na više lokacija u programu.
Pored toga, uz pomoć modifikatora pristupa u Javi, imate kontrolu nad tim koje metode su dostupne na nivou aplikacije, a koje nisu. Ovo doprinosi čitljivijem, organizovanijem i struktuiranijem kodu.
Vrste metoda u Javi
U Javi postoje dve osnovne vrste metoda: metode koje definiše korisnik i unapred definisane (ugrađene) metode. Metode koje definiše korisnik, kako samo ime kaže, kreira programer po sopstvenim potrebama. Primer takve metode je:
public int sum(int a, int b) { return a + b; }
Sa druge strane, unapred definisane metode ili ugrađene metode već postoje kao sastavni deo programskog jezika Java. Primer ugrađene metode je:
String text = "Hello World"; text.toLowerCase();
Ovde je toLowerCase ugrađena Java metoda koja se može koristiti bilo gde u vašem programu.
Struktura metoda u Javi
Pogledajmo tipičnu strukturu metode u Javi:
[access_modifier] [return_type] method_name(...parameters) { // method body }
Ove komponente moraju biti navedene po tačnom redosledu. Na primer, ne možete definisati ime metode pre njenog tipa povratne vrednosti. Hajde da se upoznamo sa svakom od ovih komponenti i kako one zajedno funkcionišu.
#1. Modifikator pristupa
U Javi, modifikatori pristupa su ključne reči koje određuju vidljivost metode, klase, interfejsa, promenljive, itd. U Javi postoji pet osnovnih modifikatora pristupa:
- public: dostupno svim klasama
- private: dostupno samo klasi u kojoj je deklarisano
- default: metod je dostupan samo unutar istog paketa (slično protected)
- protected: dostupno unutar potklasa ili unutar istog paketa
public int sum(int a, int b) { return a + b; }
Ovde metoda sum ima modifikator pristupa public, što znači da je dostupna sa svih strana.
#2. Tip povratne vrednosti
Tip povratne vrednosti metode određuje kog tipa podataka će ta metoda vratiti. Ako metoda ne treba ništa da vrati, koristi se tip void. Ključna reč return se ne može koristiti kada je naveden tip void. Navođenje tipa povratne vrednosti je obavezno prilikom definisanja metode.
public void log(String text) { System.out.println(text); }
Gornja metoda ne vraća ništa, ona samo štampa tekst na konzolu. Zbog toga je njen tip povratne vrednosti void.
#3. Naziv metode
Naziv metode jedinstveno identifikuje metodu u okviru klase i koristi se za njeno pozivanje.
class Print { void log(String text) { System.out.println(text); } } Print p = new Print(); p.log("hello world"); // outputs "hello world"
#4. Parametri
Metodama možete prosleđivati argumente, na osnovu parametara koji su definisani u njenoj deklaraciji. Na primer, ako je metoda definisana da prima dva parametra, možete joj proslediti dva argumenta odgovarajućeg tipa podataka. Redosled prosleđivanja argumenata mora da odgovara redosledu kojim su parametri definisani.
class Calc { int sum(int a, int b) { return a + b; } } Calc cal = new Calc(); cal.sum(3, 7); // will return 10
#5. Telo metode
Telo metode sadrži programsku logiku koja se izvršava da bi se dobio željeni rezultat. Ono obavlja zadatak za koji je metoda namenjena. Telo metode je uvek u okviru vitičastih zagrada i često se naziva blokom koda.
class Calc { int sum(int a, int b) { return a + b; } }
Ovde je return izraz unutar vitičastih zagrada telo sum metode.
Pozivanje metoda u Javi
Pozivanje metoda u Javi je prilično jednostavno. Metodu možete pozvati njenim imenom iz instance klase u kojoj se nalazi.
Statičke metode se mogu pozvati direktno, bez potrebe za instancom objekta klase. Nestatičke metode se moraju pozivati iz objekta klase (tj. instance klase).
Pozivanje statičke metode izgleda ovako:
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); } }
U gornjem kodu, metoda sum unutar klase Math je statička metoda. Zato nije potrebno kreirati objekat klase Math, već se metoda poziva direktno sa imenom klase.
Sa druge strane, pozivanje nestatičke metode izgleda ovako:
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); } }
Ovde se kreira novi objekat klase Math, a zatim se poziva metoda sum na tom objektu. Razlog tome je što nestatičke metode ne postoje dok se ne instancira klasa.
To je način na koji se metode pozivaju u Javi.
Završne reči
Metode su izuzetno koristan način da se organizuje kod, ne samo u Javi već u bilo kom programskom jeziku. One omogućavaju višestruko korišćenje koda na različitim mestima. Metode su temelji modularne arhitekture i arhitekture zasnovane na komponentama.
Ako se bavite Javom, preporučujemo da se detaljnije upoznate sa konceptom obrade izuzetaka u Javi.