ebook img

Programiranje u Javi PDF

778 Pages·2015·9.435 MB·Croatian
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 (Marko.Cupic@fer.hr). 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

book image

Mind Management, Not Time Management

David Kadavy
·2020
·0.58 MB

book image

Atomic Habits James Clear

JAMES CLEAR
·6.4 MB

book image

Credence

Penelope Douglas
·487 Pages
·2020
·0.86 MB

book image

What Happened to You?

Bruce D. Perry
·2021
·4.38 MB

book image

Charaksanghitar Darshanic Vabna-samikha

Badhuri, Daliya.
·2006
·17 MB

book image

Annual Report 2005

Housing and Land Use Regulatory Board
·2006
·8.5 MB

book image

Hopscotch: A Novel

Julio Cortazar
·567 Pages
·2014
·2.53 MB

book image

Extraordinary Gazette of India, 2009, No. 118

Directorate of Printing, Government of India
·0.07 MB

book image

caliphs and kings

30 Pages
·2013
·1.47 MB

book image

Quasar 270 RC

114 Pages
·2010
·1.37 MB