Showing posts with label Java. Show all posts
Showing posts with label Java. Show all posts

6.6.26

Java metode - Preopterećenje metoda

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

Java metode u istoj klasi mogu imati isto ime. U tom slučaju, govotimo o preopterećenju metoda (eng. method overloading).

Preopterećenje metoda - kada više metoda deli isto ime

Zamisli da si vlasnik jedne knjižare. Neko dođe i kaže ti: „Daj mi knjigu.” Ne znaš koju. Ali ako kaže: „Daj mi knjigu 'Dina'”, onda znaš, jer možeš da razumeš koju knjigu traže ako ti je poznat naslov. Ako kaže: „Daj mi knjigu čiji je kataloški broje 27”, opet znaš. Ista reč „daj”, ali različite informacije.

Ista priča važi i za Javu. Metode mogu imati isto ime, a različite parametre. To se zove preopterećenje metoda (method overloading). U ovom slučaju imaš dve verzije metode dajKnjigu, obe se zovu isto. Ali jedna metoda dajKnjigu ima int parametar, dok druga ima parametar tipa String.

Kôd bi mogao da izgleda ovako:

16.4.26

Stigla je Java 26!

Pročitaj i ostale Java vesti.

Java 26 SE je stigla. Ova verzija ne dolazi sa dugoročnom podrškom, ali nam donosi nekolicinu promena:

Jezik:

  • Primitive Types in Patterns, instanceof, and switch (Fourth Preview) - JEP 530

Biblioteke:

  • HTTP/3 for the HTTP Client API - JEP 517
  • Lazy Constants (Second Preview) - JEP 526
  • Structured Concurrency (Sixth Preview) - JEP 525
  • Vector API (Eleventh Incubator) - JEP 529
  • PEM Encodings of Cryptographic Objects (Second Preview) - JEP 524

16.11.25

Java konstruktori sa parametrima

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

U jednom od prethodnih članaka objasnio sam šta su konstruktori i kako rade podrazumevani konstruktori. Ali često je potrebno inicijalizovati objekat na različite početne vrednosti, što je nemoguće postići korišćenjem podrazumevanih konstruktora. Zato nam Java omogućava da napravimo konstruktor sa parametrima, baš onako kako to nama odgovara.

Konstruktori sa parametrima

Svaki konstruktor po svojoj sintaksi liči na obične metode. Baš kao što možeš da napišeš metodu koja može (a ne mora) da ima parametre, možeš da napraviš i svoj konstruktor sa ili bez parametara.

14.11.25

Java SE 25 LTS - Šta je novo?

Pročitaj i ostale Java vesti.

Dve godine nakon prethodne Java LTS verzije, izašla je najnovija verzija programskog jezika Java sa dugoročnom podrškom, Java 25 SE LTS.

Da se podsetimo, dugoročna podrška (Long-Term Support - LTS) je uobičajeni pojam koji se koristi u softverskok industriji. Dugoročna podrška znači da će programski jezik ili softver biti automatski ažuriran u narednom periodu duže nego obična verzija. Ova verzija nam je donela nekoliko promena:

Promene jezika:

  • Primitive Types in Patterns, instanceof, and switch (Third Preview) - JEP 507
  • Module Import Declarations - JEP 511
  • Compact Source Files and Instance Main Methods - JEP 512
  • Flexible Constructor Bodies - JEP 513

13.11.25

3 najvažnije metode u tvojoj Java klasi

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

U svojoj Java klasi možeš da definišeš metode koje imaju različite namene. Ali postoje metode koje bi gotovo uvek trebalo da ugradiš u sve svoje Java klase.

Koje su to metode koje su toliko važne?

3 najvažnije Java metode

Tri najvažnije Java metode koje bi trebalo da imaš u (skoro) svakoj svojoj klasi su:

  • toString
  • equals
  • hashCode

9.5.25

Java SE 24 - Karakteristike najnovije verzije

Pročitaj i ostale Java vesti.

Nedavno je svetlost dana ugledala najnovija verzija programskog jezika Java, Java 24 SE. Novine koje nam donosi Java 24 SE su:

Pregled novih elemenata jezika:

  • Primitive Types in Patterns, instanceof, and switch (Second Preview) - JEP 488
  • Flexible Constructor Bodies (Third Preview) - JEP 492
  • Module Import Declarations (Second Preview) - JEP 494
  • Simple Source Files and Instance Main Methods (Fourth Preview) - JEP 495

22.4.25

Šta je Java?

Pročitaj i ostale članke koji šire obrađuju Java programiranje.

Šta je Java i zašto je važno da naučiš baš programski jezik Java?

Java je jedan od najpopularnijih i najčešće upotrebljavanih programskih jezika. Preko 3 milijarde uređaja u svetu koristi upravo ovaj programski jezik.

Šta je Java?

Java je programski jezik opšte namene visokog nivoa. Kao programski jezik opšte namene može se koristiti za programiranje raznih softvera kao što su:

  • veb aplikacije
  • desktop aplikacije
  • aplikacije za mobilne telefone
  • igre

17.9.24

Danas izlazi Java 23!

Pročitaj i ostale Java vesti.

Povodom izlaska Java 23 SDK na platformi YouTube na zvaničnom Java kanalu biće emitovan strim. Pričaće se o novinama koje ovo Java izdanje donosi, kao i o najavljenim budućim promenama.

Strim možeš da gledaš uživo danas (17. septembar 2024. u 15:00), kao i kasnije:

31.7.24

Java konstruktori

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

Konstruktori su posebna vrsta metoda čija je svrha incijalizacija objekata.

Podrazumevani konstruktor

Svaka Java klasa ima podrazumevani konstruktor. Svaki put kada stvoriš novu klasu, ako ne napišeš svoj konstruktor, Java će to uraditi za tebe.

Podrazumevani konstruktor će podesiti sve početne vrednosti svih promenljivih tvog objekta na podrezumevane vrednosti. Podrazumevana podešavanja će zavisiti od tipa promenljive:

  • false za boolean tip
  • 0 za numeričke tipove
  • null za referentne tipove

24.4.24

Koje novine donosi Java SE 22?

Pročitaj i ostale Java vesti.

Nedavno je objavljena najnovija verzija programskog jezika Java, Java 22, koja nam donosi više novina.

Projekat Amber:

  • Statements before super(…) (Preview) - JEP 447
  • Unnamed Variables & Patterns - JEP 456
  • String Templates (Second Preview) - JEP 459
  • Implicitly Declared Classes and Instance Main Methods (Second Preview) - JEP 463

Projekat Loom:

  • Structured Concurrency (Second Preview) - JEP 462
  • Scoped Values (Second Preview) - JEP 464

Projekat Panama:

  • Foreign Function & Memory API - JEP 454
  • Vector API (Seventh Incubator) - JEP 460

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.

Bez ulazinh vrednosti, metode bi uvek radile potpuno isto i ne bi bile prilagodljive trenutnim uslovima. Parametri metoda ti omogućuju da podesiš metodu da radi baš onako kako ti u odgovara u nekom trenutku.

Uzmimo za primer klasu Knjiga, čiji osnovni kôd izgleda ovako:

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:

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?

U programskom jeziku Java 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

4.12.22

Uvod u objektno orijentisano programiranje

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

Objektno orijentisano programiranje ili, skraćeno, OOP je srž modernog programiranja. Pojava objektno orijentisanog programiranja napravila je pravu revoluciju u ovoj oblasti.

Nastanak objektno orijentisanog programiranja

Za tvorca koncepta objekto orijentisanog programiranja smatra se Alan Kej, koji je i smislio naziv. ALan je ovaj koncept osmislio tokom 1966. i 1967. godine. Za prvi programski jezik koji je posedovao glavna OOP svojstva smatra se Simula(1967). Adam Kej je zajedno sa svojim saradnicima razvio programski jezik Smalltalk(1972), ali pravu popularizaciju objektno orijentisano programiranje doživelo je desetak godina kasnije kada je Bjarne Stroustrup stvorio novi programski jezik.

U to vreme najrasprostranjeniji programski jezik opšte namene bio je C, tako da se Bjarne opredelio da novi programski jezik zasnuje na upravo ovom programskom jeziku. Svoj novi objektno orijentisani jezik Bjarne je nazvao “C sa klasama” i to je zapravo bilo proširenje za programski jezik C koje mu je dodalo OOP mogućnosti. Kasnije je novi jezik evoluirao i dobio novi naziv - C++.

Programski jezik C++ je godinama bio najkorišćeniji i najpopularniji programski jezik. Zbog toga je postao nezaobilazan programski jezik na mnogim univerzitetima kao i u drugim obrazovnim ustanovama. C++ je uticao na gotovo sve savremene programske jezike uključujući i programski jezik Java.

Java je u početku bila isklučivo objektno orijentisan jezik, ali od verzije 8 uvedene su neke novine koje su omogućile i funkcionalno programiranje. Ali i ovi kao i svi ostali načini korišćenja programskog jezika Java u pozadini se primenjuju u objektno orijentisanom okruženju.

Osnovni pojmovi objektnog programiranja u programskom jeziku Java su klase i objekti.


Pročitaj i nastavak:

Besplatni Java kurs - 55. deo - Klase

15.4.22

Java 18 - Nove mogućnosti

Pročitaj i ostale Java vesti.

Najnovija verzija Jave, Java 18, koja je nedavno objavljena (22. mar. 2022.) stigla je sa nekoliko promena:

  • UTF-8 by Default - JEP 400
  • Simple Web Server - JEP 408
  • Reimplement Core Reflection with Method Handles - JEP 416
  • Internet-Address Resolution SPI (Service-provider Interface) - JEP 418
  • Code Snippets in Java API Documentation - JEP 413
  • Vector API (Third Incubator) - JEP 417
  • Foreign Function and Memory API (Second Incubator) - JEP 419
  • Pattern Matching for switch (Second Preview) - JEP 420
  • Deprecated Finalization for Removal - JEP 421
  • String Deduplication Support - JEP 192