6.12.23

Java metode: parametri metoda

Besplatni Java kurs - 62. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.

Osim povratnih vrednosti koje predstavljaju izlaz, Java metode mogu imati i ulazne vrednosti. Ulazne vrednosti metoda nazivaju se parametri metoda.

Parametri metoda

Često je potrebno da metode prihvataju neke ulazne vrednosti kako bi se njihovo izvršavanje prilagodilo potrebama. Uzmimo za primer klasu Knjiga, čiji osnovni kôd izgleda ovako:

class Knjiga {
    public String naslov;
    public String autor;
    public int brStranica;

    public Knjiga(String naslov, String autor, int brStranica){
        this.naslov = naslov;
        this.autor = autor;
        this.brStranica = brStranica;
    }
}

class Rad {
    public static void main(String args[]){
        Knjiga Dina = new Knjiga("Dina", "Frenk Herbert", 704);
    }
}

U navedenom kôdu u metodi main klase Rad stvara se jedan objekat tipa Knjiga. Objekat ima naslov Dina, autora Frenk Herbert i broj stranica 704.

Primenom programa u realnom svetu objekat knjiga se ne bi stvarao na ovaj način, navođenjem nepromenljivih podataka u kôdu, već bi korisnici unosili sve navedene podatke: naslov, autora i broj stranica. Tokom unosa uvek postoji mogućnost greške i neki od korisnika mogao bi da unese neki od podataka pogrešno. Na primer broj stranica bi greškom mogao biti unet kao 705 umesto 704. Naš mali program ne bi bio dobar ako ne bismo korisnicima dozvolili da isprave pogrešno navedene podatke.

Naravno, mogli bismo da napravimo metodu koja će uvek prepraviti broj stranica u 704:

public void promeniBrojStranica() {
    this.brStranica = 704;
}

Ali naša nova metoda promeniBrojStranica() bi na ovaj način mogla da promeni broj stranica samo u 704, što i nije najbolje rešenje. Jer šta ako korisnik pogreši prilikom unosa broja stranica neke druge knjige? Jasno je da bi naša nova metoda morala biti prilagodljiva datim okolnostima. Da bismo metodu promeniBrojStranica() učinili prilagodljivom, moramo joj dodati ulazne parametre. Tačnije, potreban nam je samo jedan ulazni parametar: broj stranica. Naša prilagodljiva metoda bi mogla izgledati ovako:

19.9.23

Izašla je Java 21 LTS

Pročitaj i ostale Java vesti.

Izašla je najnovija verzija programskog jezika Java, Java 21 LTS, koja uvodi sledeće promene:

  • String Templates (Preview) - JEP 430
  • Sequenced Collections - JEP 431
  • Generational ZGC - JEP 439
  • Record Patterns - JEP 440
  • Pattern Matching for switch - JEP 441
  • Foreign Function and Memory API (Third Preview) - JEP 442
  • Unnamed Patterns and Variables (Preview) - JEP 443
  • Virtual Threads - JEP 444
  • Unnamed Classes and Instance Main Methods (Preview) - JEP 445
  • Scoped Values (Preview) - JEP 446
  • Vector API (Sixth Incubator) - JEP 448
  • Deprecate the Windows 32-bit x86 Port for Removal - JEP 449
  • Prepare to Disallow the Dynamic Loading of Agents - JEP 451
  • Key Encapsulation Mechanism API - JEP 452
  • Structured Concurrency (Preview) - JEP 453

11.9.23

Java metode: povratna vrednost metoda

Besplatni Java kurs - 61. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.

U prvom članku o Java metodama objasnio sam šta su metode i kako se koriste. Podsećanja radi, metoda koju sam koristio u primeru zvala se citaj i bila je napisana u klasi Knjiga, a ceo kôd je izgledao ovako:

class Knjiga {
    public String naslov;
    public String autor;
    public int brStranica;

    public Knjiga(String naslov, String autor, int brStranica){
        this.naslov = naslov;
        this.autor = autor;
        this.brStranica = brStranica;
    }

    public void citaj(){
        System.out.println("Citam knjigu " + this.naslov);
    }
}

class Rad {
    public static void main(String args[]){
        Knjiga Dina = new Knjiga("Dina", "Frenk Herbert", 704);
        Dina.citaj();
    }
}

Izvršavanjem navedenog kôda dobija se sledeći izlaz:

Citam knjigu Dina

Metoda citaj je veoma jednostavna. Njen jedini zadatak je ispisivanje poruke koja kaže koju knjugu čitam. Metoda citaj sadrži jednu jedinu liniju kôda:

System.out.println("Citam knjigu " + this.naslov);

Hajde sada da dodamo još jednu metodu u klasu Knjiga. Metoda će se zvati uzmiNaslov. Prvo ću napisati celokupan novi kôd, pokazati šta će biti rezultat njegovog izvršavanja i na kraju ću detaljno objasniti kako nova metoda radi.

Metode sa povratnom vrednošću

Nova verzija kôda koji koristi metodu sa povratnom vrednošću uzmiNaslov izgleda ovako:

29.8.23

Java 21 LTS stiže za tri nedelje

Pročitaj i ostale Java vesti.

Za tačno tri nedelje (19. sep. 2023.) trebalo bi da stigne nova LTS verzija programskog jezika Java - Java 21.

To je prva verzija posle verzije 17 koja ima dugoročnu podršku.

Javno dostupna dugoročna podrška trajaće do septembra 2028. god. dok će za Oracle i Azul podrška trajati do septembra 2031. god.

28.8.23

Šta znači this u programskom jeziku Java?

Besplatni Java kurs - 60. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.

U svakom Java programu koji nije trivijalan stalno se pojavljuje ključna reč this. Čak i u školskom primeru klase Knjiga koju sam do sada koristio da objasnim osnovne koncepte programskog jezika Java, pojavljivala se ključna reč this. Da podsetim, jedna od verzija klase Knjiga je izgledala ovako:

class Knjiga {
    public String naslov;
    public String autor;
    public int brStranica;

    public Knjiga(String naslov, String autor, int brStranica){
        this.naslov = naslov;
        this.autor = autor;
        this.brStranica = brStranica;
    }
}

class Rad {
    public static void main(String args[]){
        Knjiga Dina = new Knjiga("Dina", "Frenk Herbert", 704);
    }
}

U konstruktoru klase Knjiga ključna reč this se pojavljuje čak tri puta.

Šta je this?

this označava trenutni objekat!

Ali šta je to trenutni objekat? Trenutni objekat je onaj u kojem se trenutno „nalazimo”.

6.7.23

Statičke promenljive (varijable) u Javi

Besplatni Java kurs - 59. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.

Već sam nekoliko puta pominjao Java promenljive i uvek sam podrazumevao da su to obične promenljive koje pripadaju objektu. Npr. u članku o Java objektima postoji jednostavna klasa Knjiga koja izgledala ovako:

class Knjiga {
    public String naslov;
    public String autor;
    public int brStranica;
}

Kasnije sam navedenu klasu malo proširio i napravio objekat te klase sa konkretnim vrednostima za sve tri promenljive (naslov, autor i brStranica):

class Knjiga {
    public String naslov;
    public String autor;
    public int brStranica;

    public Knjiga(String naslov, String autor, int brStranica){
        this.naslov = naslov;
        this.autor = autor;
        this.brStranica = brStranica;
    }
}

class Rad {
    public static void main(String args[]){
        Knjiga Dina = new Knjiga("Dina", "Frenk Herbert", 704);
    }
}

U datom primeru sve tri promenljive (naslov, autor i brStranica) pripadaju objektu Dina. To je slučaj sa svim običnim promenljivim, one uvek pripadaju određenom objektu. Statičke promenljive su drugačije.

Šta su statičke varijable u Javi?

Statičke promenljive u Javi pripadaju klasi, a ne objektu.

19.6.23

Java - modifikatori pristupa

Besplatni Java kurs - 58. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.

U prethodnim primerima, npr. u članku o Java metodama, u kôdu se često ponavjala reč public. To je jedan od četiri modifikatora pristupa u programskom jeziku Java.

Šta su modifikatori pristupa?

Java modifikatori pristupa određuju dostupnost klasa, metoda i promenljivih unutar Java kôda. Ograničavanje pristupa se koristi iz bezbednosnih razloga, kao i da slučajno ne bi dolazilo do grešaka tokom izvršavanja programa. Modifikatori pristupa dele programski kôd na celine koje međusobno mogu da komuniciraju onako kako to modifikatori pristupa nalažu.

U programskom jeziku Java postoje četiri modifikatora pristupa:

  • private
  • podrazumevani (default)
  • protected
  • public

3.5.23

Java - metode

Besplatni Java kurs - 57. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.

Programiranje praktično ne bi imalo nikakvog smisla ako bi se svelo na puko skladištenje podataka. Podaci jesu ključni pojam u programiranju, ali bez dodavanja određenih funkcionalnosti nijedan program ne bi bio preterano koristan, štaviše, ne bi ni bio program u pravom smislu te reči. Osnovni način dodavanja funkcionalnosti u program je upotrebom funkcija.

Šta su funkcije?

Funkcije su deo programa koji se koristi za vršenje određenog posla. Donekle su slične petljama jer se koriste za ponavljanje određene grupe naredbi. Za razliku od petlji, funkcije se ne izvršavaju u trenutku u kojem su definisane, već se izvršavaju naknadno, prema potrebi. Takođe, za razliku od petlji, mogu sadržati parametre pomoću kojih se prilagođavaju specifičnom zadatku tako da su mnogo fleksibilnije od petlji.

Funkcije su po svojoj prirodi samostalne i nezavisne, tj. mogu se definisati praktično bilo gde u kôdu u programskim jezicima koji ih podržavaju. U programskom jeziku Java funkcije kao takve ne postoje, već postoje u specifičnom obliku, kao metode.

Šta su metode?

Metode su posebna vrsta funkcija koje se ne mogu definisati bilo gde u kôdu, već samo unutar klasa. Zbog toga imaju malo drugačije osobine nego obične funkcije.

25.4.23

Java - objekti

Besplatni Java kurs - 56. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.

Objekti predstavljaju srž objektnog programiranja u programskom jeziku Java.

Šta su objekti?

Mnogim početnicima je teško da shvate razliku između klasa i objekata. Klase su tipovi podataka koji mogu imati ugrađene funkcionalnosti, objekti su sami podaci na koje se te funckionalnosti primenjuju.

Klase su apstraktan pojam, dok su objekti realna implementacija istog pojma. Uzmimo za primer nešto iz realnog sveta: knjigu. Kako bi neka knjiga mogla biti predstavljena u programskom jeziku Java? Knjiga bi mogla biti predstavjena kao klasa:

class Knjiga {
    public String naslov;
    public String autor;
    public int brStranica;
}

U navedenom primeru klasa koja predstavlja Knjigu sadrži dve promenljive tipa string (naslov i autor) i jednu promenljivu tipa int (brStranica). Kao što se može primetiti, nisu navedeni nijedan konkretan naslov niti autor, kao ni broj stranica. To je zato što klase predstavljaju samo apstraktne opise nečega iz realnog sveta. Klase služe kao skup pravila i uputstava kako napraviti nešto konkretno, odnosno neki objekat. U našem primeru pravila su sledeća: svaka knjiga bi trebalo da ima naslov, autora i broj stranica. Hajde da napravimo jednu knjigu, odnosno, da napravimo objekat knjige:

class Knjiga {
    public String naslov;
    public String autor;
    public int brStranica;
}
class Rad {
    public static void main(String args[]){
        Knjiga praznaKnjiga = new Knjiga();
    }
}

25.1.23

Java - Klase

Besplatni Java kurs - 55. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.

Klase predstavljaju prvi od dva ključna pojma objektnog programiranja u programskom jeziku Java.

Šta su klase?

Klase su složeni tipovi podataka koji mogu imati ugrađene funkcionalnosti. To bi bila gruba definicija klasa koje po svojoj prirodi mogu biti veoma složene.

Postoje klase koje su ugrađene u programski jezik Java, a možeš da praviš i svoje klase. Ali zašto bi neko pravio svoje klase? Nekada su ugrađeni tipovi podadaka više nego dovoljni da se stvari iz prirode predstave u Java programskom kôdu. Npr. nečije ime je lako iskazati kao string. Čak i kada podataka ima više, mogu se predstaviti kao niz.

Složenije stvari nije tako lako iskazati korišćenjem osnovnih tipova podataka, čak ni kolekcija. Kako predstaviti knjige? Knjiga ima naslov, izdavača, broj stranica, broj izdanja, tiraž, može imati jedog autora ili grupu autora itd. Čak i kada bismo sve te podatke stavili (npr.) u string, ne bi postojao lak način da se u kasnijoj upotrebi dođe do tih istih podataka. Različite knjige će imati različite osobine i teško bi bilo sve te raznovrsnosti efikasno predstaviti i koristiti kao string. Još teže bi bilo dodati neke funkcionalnosti koje bi bile zajedničke za sve knjige, posebno ako bi trebalo da se prilagode svakoj knjizi ponaosob.

Zato postoje klase. Klase omogućavaju da se podaci urede prema sopstvenim potrebama i da se smisaono povežu. Takođe, klase omogućavaju da se na jednostavan način dodaju željene funkcionalnosti koje se mogu prilagođavati prema potrebi.

Klase su toliko važne u Javi da praktično ništa ne može da postoji van klase. Čak i najjednostavniji Java program koji samo ispisuje pozdravnu poruku mora biti napisan unutar klase:

class ZdravoSvete {
    public static void main(String args[]){
        System.out.println("Zdravo svete!");
    }
}


Pročitaj i nastavak:

Besplatni Java kurs - 56. deo - Objekti