Programski
jezik "JAVA"
*)
Predavanja su napravljena na osnovi Java Lecture
Notes,bilješki za predavanja koja drži profesor
Elliotte Rusty Harold na Brooklyn
Polytechnic
University u okviru jednosemestralnog kolegija
Introduction to Java Programming. Predavanja također prate Sun-ov Java Tutorial koji za ovaj
kolegij smatramo obaveznom literaturom. Na raspolaganju vam je i biblioteka klasa, Java2
Platform Std. Ed. v1.3.1.
·
Prvo
predavanje – upoznavanje s Javom
Aplikacija
Hello World – kompiliranje i izvršavanje programa – for-petlje – operatori za
increment i decrement – naredbe za ispis – Fibonaccijevi brojevi – varijable i
tipovi podataka – komentari –argumenti na komandnoj liniji – klase, atributi i
metode – objekti – razlikovanje objekata iste klase – višestruko referenciranje
objekta – statičke varijable – metode –prenošenje argumenta u metodu – vraćanje
vrijednosti iz metoda – setter metode – getter metode – ista imena varijabli i
metoda – konstruktori – skrivanje imena varijabli i ključna riječ this –
polja
·
Drugo
predavanje – proceduralna sintaksa
Primitivni
tipovi podataka – operatori – razmak – literali – identifikatori – ključne
riječi – separatori – zbrajanje cijelih brojeva – zbrajanje brojeva tipa double
– množenje i dijeljenje – neočekivani kvocijenti – računanje ostatka, modulo –
prioritet izvršavanja operatora – zagrade – miješanje tipova podataka –
automatsko dodjeljivanje tipova podataka (casting) – pretvaranje stringova u
brojeve – podaci tipa char – Unicode – naredbe za kontrolu toka – naredba if –
ispitivanje jednakosti – klauzula else – klauzula else if – while petlja – for
petlja – do while petlja – booleovski podaci – relacijski operatori – prioritet
izvršavanja relacijskih operatora – ispitivanje jednakosti objekata – naredba
break – naredba continue – labelirane petlje – naredba switch-case –
kondicionalni operator (? :) – logički operatori – prioritet izvršavanja
logičkih operatora – deklariranje polja – kreiranje polja – inicijaliziranje
polja – metoda System.arraycopy() – deklariranje, alociranje i inicijaliziranje
dvodimenzionalnih polja – višedimenzionalna i neuravnotežena polja
·
Treće
predavanje – objekti i klase
Objektno
orijentirano programiranje – primjer: klasa Car – kreiranje objekata uz pomoć
operatora new – separator pristupa članovima . –
uporaba objekata unutar različitih klasa – inicijaliziranje atributa – metode –
pozivanje metoda – implicirani this – member varijable nasuprot lokalnim
varijablama – prenošenje argumenata u metodu – prenošenje argumenata u metodu,
primjer – setter metode – uporaba setter metoda, primjer – vraćanje vrijednosti
iz metode – vraćanje nekoliko vrijednosti iz metoda – uporaba getter metoda,
primjer – konstruktori – uporaba konstruktora – ograničenja – zaštita
pristupa(access protection) – četiri razine zaštite pristupa – što treba biti
public, a što private? – tri koristi od zaštite pristupa – primjer zaštite
pristupa – promjena implementacije
·
Četvrto
predavanje – još o klasama i objektima
Što
je overloading?
– ključna riječ this u konstruktorima – nasljeđivanje – nadklasa (superclass),
MotorVehicle – podklase (subclasses), Motorcycle i Car – podklase i polimorfizam
– kaskadno nasljeđivanje – statičke varijable i metode – pozivanje statičkih
metoda – ključna riječ final – prekrivanje metoda (overriding) – ispis objekata
pomoću toString() metoda – ključna riječ abstract – sučelja (interfaces) –
implementiranje sučelja – implementiranje sučelja Cloneable – metoda
equals() - metoda hashCode() iz
java.lang.Object – unutarnje klase (inner classes) – iznimke (exceptions) –
try-catch blok – što možemo učiniti s uhvaćenom iznimkom? – ključna riječ
finally – razne vrste iznimaka – hvatanje višestrukih iznimaka – izbacivanje
iznimke, ključna riječ throws – pisanje vlastitih klasa iznimaka – metode klase
Exception – biblioteka klasa – dokumentiranje vlastitih programa – importiranje
klasa i paketa – primjeri metoda iz klase java.lang.Math – klasa
java.util.Random – klasa java.lang.String – pisanje vlastitih paketa – JAR
arhive
·
Peto
predavanje – apleti
HTML,
jezik za oblikovanje web stranica - URL, jedinstvena adresa dokumenta – dijelovi
URLa – linkovi – relativni URLovi – applet Hello World – što je applet? – HTML
oznaka <applet> - odabir pozicije na stranici – alternativni tekst –
imenovanje appleta – JAR arhive – HTML oznaka <object> - veličina appleta
– HTML oznaka <param> - obrada nepoznatog broja parametara – sigurnost
appleta – što applet može činiti? – s kim applet može komunicirati? – koliko CPU
vremena applet dobija? – sigurnost i social engineering – sprečavnje hakerskih
napada kroz applete – Životni ciklus appleta – metode init(), start(), stop() i
destroy() – koordinatni sustav – objekti klase Graphics – crtanje linija –
crtanje pravokutnika – punjenje pravokutnika – brisanje pravokutnika – elipse i
kružnice – primjer, bullseye – poligoni – višestruke linije (polylines) –
učitavanje slika – metode getCodeBase() i getDocumentBase() – prikaz slike u
pravoj veličini – skaliranje slika – boje – sistemske boje – fontovi – odabir
oblika i veličine fonta – klasa FontMetrics
·
Šesto
predavanje - komponente
Što
su komponente?
– labele – tri koraka u dodavanju komponente – gdje je metoda paint()? – metode
klase Label – buttoni – akcije na buttonima – primjer appleta sa akcijom na
buttonu – različiti obrasci za događaje – višestruki ActionListeneri – metode za
buttone – Action naredbe – više buttona u istom appletu – unutarnje klase kao
EventListeneri – tekstualna polja – primjer tekstualnih polja u Javi – TextArea
– klasa TextComponent – sučelje TextListener i klasa TextEvent – klasa Canvas –
klasa Choice – metode klase Choice – klasa ItemListener – klasa Checkbox –
događaji iz klase Checkbox – klasa CheckboxGroup – primjer CheckboxGroup – klasa
List – metode klase List – događaji klase List – klasa Scrollbar
·
Sedmo
predavanje - događaji
Proceduralni
programi – rep događaja (event queue) – događaji niske razine (low level events)
– događaji visoke razine (high level events) – hijerarhija klasa događaja –
obrada događaja – različiti EventListeneri – primjer uporabe MouseListenera –
događaji vezani uz tipke (key events) – kodovi tipki – različite tipke i njihovi
kodovi – modifikatori (modifier keys) – modifikatori uz tipke miša – događaji
vezani uz fokus (focus events) – događaji vezani uz komponentu (component
events) – adapteri – primjer uporabe adaptera – apsorbiranje događaja –
prebacivanje događaja s niske na visoku razinu – rad s repom događaja
·
Osmo
predavanje – razmještaj komponenti
Kontrola
razmještaja komponenti – razne implementacije layout managera – razmještaj tipa
FlowLayout – podešavanje poravnanja za FlowLayout – razdvajanje komponenti za
FlowLayout – razmještaj tipa BorderLayout – razmještaj tipa CardLayout – uporaba
CardLayout razmještaja – promjena karata – razmještaj tipa GridLayout –
razmještaj tipa BridBagLayout – razmještaj tipa GridBagConstraints – mreža
(grid) za applet Calculator – atributi gridx i gridy – atributi gridwidth i
gridheight – atribut fill – atributi ipadx i ipady – klasa Insets – atribut
anchor – atributi weightx i weighty – primjer za GridLayout – ručno
pozicioniranje komponenti – Kontejneri – dvije vrste kontejnera – paneli –
ugnježdeni paneli – prozori (windows) – okviri (frames) – događaji vezani uz
prozore – primjer događaja na prozorima – kombiniranje appleta i aplikacija –
dijalozi – metode za dijaloge – primjeri dijaloga – pisanje podklasa klase
Dialog
·
Deveto
predavanje – izbornici, slike i zvukovi
Što
je izbornik?
– klase izbornika – kreiranje izbornika – primjer izbornika – događaji vezani uz
izbornike – izborničke kratice – padajući izbornici (popup menus) – slike – kamo
staviti slike? – učitavnje slika – crtanje slika – uporaba povratne vrijednosti
metoda drawImage() – primjer crtanja slika – promjena veličine slike –
ustanovljavanje veličine slike – paket java.awt.image – Sučelja ImageProducer,
ImageObserver, ImageConsumer – sučelje ImageConsumer – čekanje na učitavanje
slike – prekrivanje metode imageUpdate() – što je zapravo slika? – operator
<< - kreiranje slika – primjer kreiranja slika – metoda getRGB() –
pretapanje boja – filtriranje slika – klasa RGBImageFilter – primjer plavog
filtra – primjer filtra sivih tonova – filtri koji ovise o položaju – filtri
koji ovise o adjungiranim pixelima – audio – kontinuirana izvedba
·
Deseto
predavanje – ulaz i izlaz
Operacije
ulaza i izlaza - što je stream?
– klase streamova – odakle streamovi dolaze? – klasa InputStream – čitanje
byteova – čitanje više byteova odjednom – prebrojavanje dostupnih byteova –
preskakanje byteova – markiranje i resetiranje – zatvaranje streamova – izlazni
streamovi – primjer izlaznog streama – čitanje iz datoteke – primjer čitanja iz
datoteke – pisanje u datoteku – primjer pisanja u datoteku – dodavanje na kraj
datoteke – filtriranje streamova – filtrirani streamovi – bufferirani streamovi
– klase podatkovnih streamova – klasa PrintStream – klasa PushBackInputStream –
klasa File – konstruktori klase File – metode klase File – primjeri metoda iz
klase File – klasa FileDialog – klasa RandomAccessFile – sučelje FilenameFilter
– klase Reader i Writer – klasa Reader – klasa Writer – klasa InputStreamReader
– klasa OutputStreamWriter – dostupne kodne stranice – klasa FileWriter – klasa
FileReader – klasa BufferedReader – klasa LineNumberReader – klasa
BufferedWriter
·
Jedanaesto
predavanje - threadovi
Multitasking
i multithreading – što je thread?
- kako Java koristi threadove? – klase threadova – jednostavni thread –
višestruki threadovi – imenovanje threadova – prioriteti threadova – metoda
sleep() – sinkronizacija: problem – sinkronizacija: nekoliko pokušaja rješenja -
ključna riječ synchronized – sinkroziniranje na objektima – primarni thread –
grupe threadova – threadovi demoni – ustupanje kontrole – spajanje threadova –
sučelje Runnable – animacija – pravovremenost – titranje slike – pokretanje i
zaustavljanje animacije – višestruke nezavisne animacije
· Cetrnaesto
predavanje – Swing
This site was
designed by DRASKO BUDIN----- 02. 04. 2003
All Rights
Reserved.