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

31.12.22

Srećni praznici!

 

Sve najbolje u Novoj 2023. godini! 


Mnogo sreće i zdravlja i, naravno, mnogo programiranja u Novoj godini.

Onima koji uče ili studiraju želim dobre ocene. Onima koji traže posao programera želim da nađu dobar i lepo plaćen posao. Onima koji već rade kao programeri želim da nauče još mnogo i da im se ostvare svi poslovni ciljevi.

Usput, fotografiju jelke koju sam iskoristio u ovom postu generisala je veštačka inteligencija, nije crtao čovek. Da ne pomisli neko da sam tek tako postavio nešto što nema veze sa programiranjem :)


Sve najbolje,
Dušan Rešin

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

8.11.22

Izmene na blogu - nove stranice i još lakše praćenje sadržaja

Pročitaj i ostale novosti u vezi sa blogom.

Radi lakšeg snalaženja na blogu, napravio sam još dve stranice i postavio linkove ka njima u glavnom meniju pri vrhu bloga. Prva stranica služi za lakše pronalaženje svih Java vesti, a druga za brže pronalaženje svih novosti u vezi sa blogom.

Za razliku od stranice "Besplatni Java kurs" na kojoj su članci poređani od najstarijih ka najnovijima, redosled linkova na novim stranicama je od najnovijih ka najstarijim člancima.

Svi dosadašnji članci su ažurirani tako da pri vrhu, odmah ispod naslova, sadrže kratak podnaslov koji pojašnjava o kojoj vrsti teksta se radi kao i link ka ostalim člancima iz iste oblasti. Do sada je sličan link postojao samo za tekstove koji su deo Java tutorijala i nalazio se pri dnu, nakon teksta. I ti tekstovi su ažurirani tako da umesto linka na kraju teksta imaju podnaslov koji sadrži link na početku. Tekstovi koji su deo Java tutorijala i dalje sadrže link ka sledećem tekstu na dnu stranice.

Svi članci tutorijala Java programiranja su osveženi tako da je sada sav programski kôd vizuelno grupisan u sivi pravougaonik koji sa leve strance ima crvenu liniju kao granicu.

Primer novog izgleda programskog kôda:

System.out.println("Ovo je primer");

Takođe, izlaz koji nastaje izvršavanjem programskog kôda vizuelno je grupisan u sivi pravougaonik koji sa leve stranice ima plavu granicu.

Rezultat izvršavanja prethodnog kôda u novom ruhu izgleda ovako:

Ovo je primer

Zahvaljujući ovim promenama sada je lakše i brže uočiti i razumeti koji deo članka je programski kôd, šta je izlaz i razdvojiti ih od opisnog teksta i objašnjenja.

7.11.22

Java - TreeSet

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

TreeSet bi se moglo prevesti na naš jezik kao drvoliki skup. Drvoliki skupovi sadrže samo jedinstvene članove, što je i inače odlika skupova u matematici. Pristup članovima drvolikog skupa je veoma brz zahvaljujući uređenju članova koje liči na drvo čije se grane račvaju, otuda i naziv. Članovi drvolikog skupa su uređeni u rastućem poretku i ne mogu biti prazni (null).

Java TreeSet - Upotreba

Pre svega potrebno je uvesti klasu TreeSet iz paketa java.util:

import java.util.TreeSet;


Pročitaj i nastavak:

Besplatni Java kurs - 54. deo - Uvod u objektno orijentisano programiranje

2.11.22

Java - PriorityQueue

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

PriorityQueue je red sa prioritetom. Za razliku od običnih redova koji se opslužuju po FIFO principu, redovi sa prioritetom ne prate istu logiku (da se prvi element koji pristigne u red prvi i obradi), već redosled obrade zavisi od prioriteta.

Java PriorityQueue - Upotreba

Prvo je neophodno uvesti interfejs PriorityQueue iz paketa java.util:

import java.util.PriorityQueue;


Pročitaj i nastavak:

Besplatni Java kurs - 53. deo - TreeSet

31.10.22

Java - Queue

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

Queue bi u prevodu na naš jezik značilo red. Redovi u programiranju su veoma slični redovima u stvarnom životu: svaki novi element koji pristigne uvek ide na kraj reda, dok će prvi sledeći element koji će biti uslužen biti onaj koji je prvi, tj. na početku reda. Ovakav princip se programiranju naziva FIFO (First In - First Out), odnosno, na našem jeziku: prvi element koji uđe u red prvi će i izaći.

Java Queue - Upotreba

Potrebno je najpre uvesti interfejs Queue iz paketa java.util:

import java.util.Queue;


Pročitaj i nastavak:

Besplatni Java kurs - 52. deo - PriorityQueue