ebook img

Programiranje u Javi PDF

778 Pages·2015·9.435 MB·Croatian
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Programiranje u Javi

Programiranje u Javi Marko Čupić Programiranje u Javi Marko Čupić Ovo je verzija 0.3.26 knjige o programiranju u programskom jeziku Java. Napisani tekst odnosi se na verziju 8 programskog jezika Java. © Autorska prava 2012. - 2015. Marko Čupić Napomene Uporaba ove knjige dozvoljava se studentima FER-a koji je žele koristiti u svrhu učenja programskog jezika Java. Za bilo koji drugi slučaj molim javite se elektroničkom poštom na adresu autora ([email protected]). Posveta Posvećeno svima koji žele naučiti programirati, a potom i programirati u Javi. i ii Sadržaj Predgovor ................................................................................................................. xxi 1. Java – jezik, platforma, ekosustav ............................................................................. 1 Postupak prevođenja i izvođenja Java programa .................................................... 3 Javin virtualni stroj ............................................................................................... 5 Jezici podržani od JVM-a ............................................................................. 6 Podržani tipovi podataka ...................................................................................... 7 Primjeri literala ............................................................................................ 9 Inicijalizacija vrijednosti .............................................................................. 11 Pretvorbe primitivnih tipova u string ............................................................. 11 Omotači primitivnih tipova .......................................................................... 12 Uvjetno izvođenje, petlje i decimalni brojevi ......................................................... 13 2. Prvi Java program ................................................................................................. 21 Prevođenje programa ......................................................................................... 23 Pokretanje izvršnog programa ............................................................................ 24 Složeniji primjer ................................................................................................. 25 Pakiranje izvršnog programa u arhivu .................................................................. 27 Generiranje dokumentacije ................................................................................. 29 Pisanje dokumentacije projekta ........................................................................... 30 Dokumentiranje paketa ............................................................................... 30 Dokumentiranje razreda ............................................................................. 30 Dokumentiranje metoda .............................................................................. 31 Automatizacija razvojnog ciklusa ......................................................................... 32 Uporaba alata ant ..................................................................................... 32 Uporaba alata maven ................................................................................ 38 Uporaba alata gradle ................................................................................ 46 3. Osiguravanje kvalitete i ispravnosti koda .................................................................. 49 Alat CheckStyle ................................................................................................. 54 Alat PMD .......................................................................................................... 56 Alat FindBugs .................................................................................................... 59 Alat JUnit .......................................................................................................... 61 Alat JaCoCo ...................................................................................................... 67 4. Jednostavniji primjeri .............................................................................................. 75 Primjer 1: ispis argumenata naredbenog retka ...................................................... 75 Primjer 2: izračun e^x ......................................................................................... 76 Primjer 3: formatirani ispis decimalnih brojeva ...................................................... 78 Primjer 4: izračun sume brojeva s tipkovnice ........................................................ 80 Naprednije čitanje ulaznih podataka .................................................................... 81 Formatirana izrada teksta ................................................................................... 82 Stringovi u Javi .................................................................................................. 82 Primjer 5: metode s varijabilnim brojem argumenata ............................................. 88 5. Razredi ................................................................................................................. 93 Motivacijski primjer ............................................................................................ 93 Java je objektno-orijentirani programski jezik ...................................................... 98 Konstruktori ............................................................................................. 100 Destruktori ............................................................................................... 102 Delegiranje zadaće konstrukcije objekta .................................................... 103 Prvi razredi ...................................................................................................... 105 Zaštita privatnosti elemenata razreda ................................................................ 122 Object Na vrhu stabla: razred ......................................................................... 123 String toString(); .......................................................................... 124 int hasCode(); .................................................................................. 125 boolean equals(Object obj); ........................................................ 125 wait notify notifyAll Metode , i ........................................................ 126 protected void finalize() ............................................................ 126 Class<?> getClass(); ...................................................................... 126 iii Java Inicijalizacijski blokovi ....................................................................................... 128 6. Upravljanje pogreškama. Iznimke. ......................................................................... 131 Iznimke ........................................................................................................... 134 Obrada više iznimaka .............................................................................. 141 Bezuvjetno izvođenje koda ....................................................................... 143 Automatsko upravljanje resursima ............................................................. 145 Definiranje novih vrsta iznimaka ........................................................................ 146 7. Apstraktni razredi. Sučelja. ................................................................................... 149 Apstraktni razredi ............................................................................................. 149 Sučelja ............................................................................................................ 153 Primjer uporabe sučelja ............................................................................ 156 static Modifikator ......................................................................................... 161 Vrste razreda ................................................................................................... 166 final Modifikator ........................................................................................... 175 Programiranje prema sučeljima ......................................................................... 176 Motivacijski primjer .................................................................................. 178 Oblikovni obrazac Iterator ......................................................................... 181 Naprednije mogućnosti sučelja .......................................................................... 183 Lambda izrazi .................................................................................................. 184 Funkcijska sučelja .................................................................................... 194 8. Načela objektno-orijentiranog oblikovanja ............................................................... 195 Na čvrstim temeljima ........................................................................................ 197 Načelo jedinstvene odgovornosti ............................................................... 199 Načelo otvorenosti za nadogradnju a zatvorenosti za promjene .................... 204 Liskovino načelo supstitucije ..................................................................... 210 Načelo izdvanja sučelja ............................................................................ 221 Načelo inverzije ovisnosti .......................................................................... 226 9. Tehnologija Java Generics .................................................................................... 239 Parametrizirani kod u Javi ................................................................................ 241 Parametrizirani razredi i sučelja ........................................................................ 245 Složeniji primjer ....................................................................................... 252 Odnosi tipova podataka uz parametrizaciju ........................................................ 255 Dodatna ograničenja pri radu s parametriziranim tipovima ................................... 256 10. Kolekcije ............................................................................................................ 259 Motivacija ........................................................................................................ 259 Elementi Javinog okvira kolekcija ...................................................................... 261 java.util.Collection Sučelje ................................................................... 267 11. Kolekcije: skup ................................................................................................... 271 Konkretne implementacije skupova .................................................................... 271 Primjeri uporabe skupova ................................................................................. 272 12. Kolekcija: lista .................................................................................................... 277 java.util.List Sučelje ............................................................................... 277 Implementacije lista .......................................................................................... 280 Pomoćne metode ............................................................................................. 282 Primjeri ............................................................................................................ 283 Zadatak 1 ................................................................................................ 283 Zadatak 2 ................................................................................................ 285 13. Kolekcija: mapa .................................................................................................. 289 java.util.Map Sučelje ................................................................................. 290 java.util.Map Implementacije sučelja .......................................................... 295 Primjer uporabe ............................................................................................... 296 14. Kolekcije i novi razredi ........................................................................................ 301 equals Metoda ............................................................................................... 302 hashCode Metoda ........................................................................................... 307 Prirodan poredak i komparatori ......................................................................... 312 Još malo o komparatorima ................................................................................ 317 Izravna i reverzna usporedba .................................................................... 317 Usporedba po više kriterija ....................................................................... 319 iv Java Izrada jednostavnih komparatora ............................................................... 323 15. Obrada podataka i tokovni API ............................................................................ 325 Obrada modelom toka ...................................................................................... 334 Izvori ....................................................................................................... 334 Međuobrada podataka ............................................................................. 337 Završna obrada podataka ......................................................................... 341 Izvori i poredak elemenata ........................................................................ 353 16. Rad s datotečnim sustavom ................................................................................ 355 java.io.File Razred ................................................................................... 355 Paket java.nio.file ............................................................................................. 362 java.nio.file.Files Razred ............................................................. 367 Preostali važniji razredi ............................................................................. 381 17. Tokovi okteta i znakova ...................................................................................... 383 Tokovi okteta: motivacija .................................................................................. 384 Ulazni tokovi okteta .................................................................................. 384 Izlazni tokovi okteta .................................................................................. 408 Tokovi okteta i Javine biblioteke ....................................................................... 409 Znakovi i okteti ................................................................................................ 423 Simboli, Java i Unicode ............................................................................ 428 Tokovi znakova ................................................................................................ 430 Primjer uporabe ....................................................................................... 438 Oblikovni obrazac Okvirna metoda ............................................................ 454 Datoteke sa slučajnim pristupom ....................................................................... 455 18. Studija slučaja: programski jezik vlang ................................................................. 457 Osnovni razredi ............................................................................................... 458 Provedba leksičke analize ................................................................................ 460 Izrada parsera i izgradnja sintaksnog stabla ....................................................... 469 Izvođenje programa: pokušaj prvi ...................................................................... 476 Izvođenje programa: pokušaj drugi .................................................................... 480 Izvođenje programa: pokušaj treći ..................................................................... 485 Korišteni oblikovni obrasci ................................................................................ 501 Oblikovni obrazac Kompozit ..................................................................... 501 Oblikovni obrazac Posjetitelj ..................................................................... 504 19. Višedretvene aplikacije ....................................................................................... 509 Njezino visočanstvo: Dretva .............................................................................. 512 Model dretve u Javi ................................................................................. 512 Thread Metode razreda .......................................................................... 514 Načini stvaranja i pokretanja dretve ........................................................... 515 Jednostavna sinkronizacija dretvi .............................................................. 518 Tipični problemi višedretvenih aplikacija ............................................................ 521 Uporaba instrukcije CAS .......................................................................... 526 Izgradnja kritičnog odsječka ...................................................................... 529 Uporaba monitora .................................................................................... 535 TODO: ............................................................................................................ 541 20. Raspodijeljene aplikacije. Paket java.net. ............................................................. 543 Što je Internet? ................................................................................................ 543 Lokalne mreže i IPv4 ............................................................................... 548 Dohvat informacija o mrežnim karticama .................................................... 548 Dva primjera lokalne mreže ...................................................................... 554 Protokol DNS ................................................................................................... 556 Detekcija poslužitelja koji šalju neželjenu e-poštu ........................................ 561 Protokol UDP - nepouzdan prijenos podataka .................................................... 561 Uporaba UDP-a u Javi ............................................................................. 562 Protokol TCP - pouzdan prijenos podataka ........................................................ 568 Protokol HTTP ................................................................................................. 572 Ukratko o URL ........................................................................................ 573 Ukratko o protokolu HTTP ........................................................................ 573 21. Grafičko korisničko sučelje: uvod u Swing ............................................................ 587 v Java Vršne komponente ........................................................................................... 588 Životni ciklus prozora ............................................................................... 592 Anatomija Swing komponente ........................................................................... 596 Primjer bordera ........................................................................................ 602 Crtanje po površini komponente ................................................................ 606 Promjena stanja komponente nakon što je prikazana .................................. 610 Automatsko razmještanje komponenata ............................................................. 611 Upoznavanje s osnovnim konceptima ........................................................ 613 StretchLayout HorizontalSplitLayout Ilustrativni primjeri: i ............ 616 LayoutManager Postojeći razredi tipa ..................................................... 626 Potpora izmjenjivom izgledu komponenata ......................................................... 635 Trenutna tema ......................................................................................... 636 Primjer komponente koja podržava LAF ..................................................... 637 22. Osnovne komponente Swinga ............................................................................. 649 Labela i dva gumba ......................................................................................... 649 Pokušaj 1 ................................................................................................ 653 Pokušaj 2 ................................................................................................ 654 Izbornici i izborničke strukture ................................................................... 655 Pokušaj 3 ................................................................................................ 658 Action Konačno rješenje: sučelje ............................................................ 661 SwingWorker Preglednik slika. Razred ............................................................ 665 23. Grafičko korisničko sučelje: Swing - modeli i pogledi ............................................. 673 Prikaz liste ....................................................................................................... 674 Prikaz elementa liste ................................................................................ 688 JSpinner Komponenta ................................................................................... 694 Rad s tablicama ............................................................................................... 703 Komponente za prikaz i uređivanje teksta .......................................................... 710 24. Uporaba relacijskih baza podataka iz Jave: SQL .................................................. 715 25. Uporaba relacijskih baza podataka iz Jave: JPA ................................................... 717 26. Razvoj web aplikacija ......................................................................................... 719 27. Web obrasci ...................................................................................................... 721 28. Tehnologija Java Servlet i JSP ............................................................................ 723 29. Višeslojne web-aplikacije .................................................................................... 725 30. IOC kontejneri .................................................................................................... 727 31. Test Driven Development .................................................................................... 729 32. Razvoj aplikacija za Android ............................................................................... 731 A. Instalacija JDK .................................................................................................... 733 Operacijski sustav Windows ............................................................................. 733 Operacijski sustav Linux ................................................................................... 734 B. Instalacija alata ant, maven i gradle .................................................................... 735 Alat Apache Ant ............................................................................................... 735 Alat Apache Maven .......................................................................................... 735 Alat Gradle ...................................................................................................... 736 C. Instalacija alata za kontrolu kvalitete i ispravnosti koda ........................................... 737 Alat CheckStyle ............................................................................................... 737 Alat PMD ........................................................................................................ 738 Alat FindBugs .................................................................................................. 738 Alat JUnit ........................................................................................................ 738 Alat JaCoCo .................................................................................................... 739 Biblioteka Mockito ............................................................................................ 739 D. Instalacija poslužitelja servleta .............................................................................. 741 Instalacija poslužitelja Apache Tomcat ............................................................... 741 Podešavanje kodne stranice i omogućavanje praćenja izvođenja .................. 742 Dodatno podešavanje kodne stranice ........................................................ 743 Instalacija poslužitelja Jetty ............................................................................... 743 E. Instalacija upravitelja bazama podataka ................................................................. 745 Instalacija upravitelja Apache Derby .................................................................. 745 Podešavanje upravitelja baze .................................................................... 745 vi Java Kazalo ..................................................................................................................... 751 Bibliography ............................................................................................................. 753 vii viii

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.