











Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u
Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan
Pripremite ispite
Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u
Nabavite poene za preuzimanje
Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan
Java,Skripta,Principi programiranja,Informacioni sistemi,fon,fakultet organizacionih nauka, Objekti, Klase, Osnovni činioci klasa, Odnos klase i objekta, Nasleđivanje, Osnovni pojmovi u Javi. Sintaksa, Osnovna sintaksa, Tipovi podataka,promenjivih, varijabli
Tipologija: Rezime
1 / 19
Ova stranica nije vidljiva u pregledu
Ne propustite važne delove!












* HelloWorldApp class stampa na ekranu “Hello World” */ public class HelloWorldApp { public static void main(String[] args) { // Display "Hello World!" System.out.println("Hello World!"); } }
Objekti – softverski entiteti sastavljeni od varijabli (promenljivih, atributa) i metoda
Klase – opisi varijabli i metoda za objekte iste vrste Objekti su instance (proizvod) klasa. Klasa predtsavlja „fabriku” koja proizvodi objekte.
Klasa je prototip objekta (mustra) Objekti se kreiraju instanciranjem klasa Klasa određuje tip objekta
Interfejsi – skupovi definicija metoda i konstanti (bez implementacije!) Primer: metode za računanje cene bicikla i cene hleba se razlikuju, a koristi ih isti program
public class BasicsDemo { public static void main(String[] args) { int sum = 0; for (int current = 1; current <= 10; current++) { sum += current; } System.out.println("Sum = " + sum); } } Prevedeno na srpski (od prvog do poslednjeg reda) 1.Definisana klasa BasicsDemo 2.Definisana metoda main (pokretač programa, od nje praktično program kreće sa radom) 3.Definisana promenjiva sum, tipa int (o tipovima promenjivih u daljem tekstu) 4.Definisana for petlja, brojač, sintaksa u zagradi znači: definisana promenjiva current, tipa int i odmah joj je dodeljena vrednost 1; provera da li je current manje ili jednako od 10; vrednost current se uvećava za +1. 5.U telu petlje sum dobija vrednost sum + current; Ovo telo se izvršava sve dok ne bude zadovoljen uslov iz zagrade da je current manji ili jednak od 10 (a pri svakom prolasku kroz petlju current se uvećava za jedan) 6.Na ekran se štampa: Sum = vrednostSume
Tip podataka *skup vrednosti koje podatak može da ima *memorijski prostor potreban za smeštanje podatka *operacije koje mogu da se vrše nad podatkom Primitivni tipovi podataka *jedna vrednost *odgovaraju æ a veli è ina (u bajtovima) i format *vrste: brojevi, karakteri i logički (boolean) podaci
Reference Adrese identifikator promenljive – njena adresa! vrste: vektori (nizovi), klase i interfejsi Varijable (Promenljive) Varijabla - podatak imenovan nekim identifikatorom Identifikator - niz Unicode karaktera koji počinje slovom identifikator promenljive – njena adresa! .promenljiva – imenovana memorijska lokacija! .konvencije u pisanju identifikatora .identifikator promenljive mora da bude jedinstven i ne sme da bude rezervisana reč (main, String, class, new, else, true... – sve su to reči koje koristi Java i tako se ne smeju nazivati promenjive)
Za sve ostale isti šablon kao za 4. samo što se svaka nova promenjiva, definiše kao drugi tip, i dobija vrednost najvećeg broja u tom tipy (najveći broj do koga taj tip „ide”) Na kraju se stampa vrednost promenjive largestByte, a u daljem programu (...) i vrednosti ostalih varijabli final varijable (Konstante) ne mogu se menjati nakon inicijalizacije predstavljaju na è in za koriš æ enje konstanti Primer: final int novibroj = 1; final klase ne mogu se praviti podklase od njih final metode ne mogu se redefinisati
Operatori i operacije
public class ArithmeticDemo { public static void main(String[] args) {
//a few numbers int i = 37; int j = 42; double x = 27.475; double y = 7.22; System.out.println("Variable values..."); System.out.println(" i = " + i); System.out.println(" j = " + j); System.out.println(" x = " + x); System.out.println(" y = " + y); //adding numbers System.out.println("Adding..."); System.out.println(" i + j = " + (i + j)); System.out.println(" x + y = " + (x + y)); .... U prevodu na srpski (ovaj put kraće): Nakon definisanja klase i metode main, najpre se deklarisu promenjive i,j,x,y i svaka od njih postaje odredjeni tip (int, double...) i dobija neku vrednost (37,42...). Zatim se stampa svaka od tih vredosti kao npr: i = vrednost-za-i. U narednom delu programa se vrši stampanje brojeva. U okviru metode za stampanje na ekran, izvršeno je sabiranje. Kao da je programu rečeno: Štampaj zbir ova dva broja. •Aritmetički operatori op++ - Za Javu znaci, odradi nesto sa varijablom op (ako ti treba), zatim je povećaj za 1 (inkrementiraj). ++op – prvo je povećaj za jedan, pa odradi nesto sa varijablom op analogno za – Relacioni operatori
and – i; or – ili pr. 1 i 0 daju 1. Primer: 1101 // & 1100 //
1100 // Operatori dodeljivanja vrednosti i += 2; i = i + 2; isti rezultat
Izvršne jedinice koda, sa ; na kraju Primer : aValue = 8933.234; Blok instrukcija nula ili više instrukcija između { i } Kontrolne instrukcije Sekvencijalno izvršavanje programa
do-while do { statement(s) } while ( expression ); for for ( initialization ; termination ; increment ) { statement(s) } if-else (3 tipa) _if ( expression ) { statement(s) }
if ( expression ) { statement(s) 1 } else { statement(s) }
if ( expression0 ) { statement(s) } else if ( expression1 ){ statement(s) } else if ( expression2 ){ statement(s) ... } else { statement(s)n }_ switch-case switch ( expression ) { case n1 : statement1 ; break; case n2 : statement2 ; break; case n3 : statement3 ; break; ... case nk : statementk ; break; default: statementk+1 ; break; } break Bez labele> prekidanje switch , for , while , ili do-while bloka u kome se break neposredno nalazi (sa labelom>za spoljni blok) continue preskakanje preostalih instrukcija iz for , while , ili do-while bloka u kome se break neposredno nalazi (takođe važi princip sa labelom) return povratak iz metode koja se trenutno izvršava return expression ; // returns a value return; // doesn't return a value (void) try-catch-finally , throw try { statement(s) 0 } catch ( exceptiontype1 name1 ) { statement(s) } catch ( exceptiontype2 name2 ) { statement(s) } catch ( exceptiontype3 name3 ) { statement(s) ... } finally { statement(s)n+ }
public class IfElseDemo { public static void main(String[] args) { int testscore = 76; char grade; if (testscore >= 90) { grade = 'A'; } else if (testscore >= 80) {
odnosno:. Najpre je u klasi Rectangle deklarisan konstruktor za objekat Rectangle ,a zatim je sa narednom insturkcijom ( Rectangle rect_one = new Rectangle(origin_one, 100, 200);) pozvan taj konstruktor u klasi Rectangle, i u prevodu na srpski znači: Klaso Rectangle, napravi mi objekat rect_one, koji će biti tipa Rectangle, koji je inače definisan u okviru tvoje klase, a dajem ti i ulazne parametre, to su (origin_one, 100, 200) Na taj način je kreiran objekat rect_one. PS. (Ni meni ova slika nije baš jasna, ali nadam se da tekst jeste) Objekti iste klase (objekti koje je kreirala ista klasa) nalaze se na različitim adresama i svaki ima svoj skup instance varijabli. Objekat je spreman za GC (Garbage Colector – u prevodu = “ubica objekata”) kad više nema referenci na njega (obično kad se izađe iz njegove oblasti važenja). Postavljanjem reference na objekat na null iz programa može se objekat "odbaciti" u GC u željenom trenutku. Opšti oblik korišćenja instance varijable: objectReference.variableName odnosno (imeobjekta.imevarijable) Primeri: System.out.println("Height of rect_one: " + rect_one.height); //Štampa na ekran visinu(to je varijabla objekta) objekta rect_one // ime objekta (referenca na objekat) int height = new Rectangle().height; //Stvara se nova promenjiva height, tipa int, i dodeljuje joj se vrednost height objekta Rectangle // vraćena referenca na objekat (ali se tom objektu više ne može pristupiti, pa ga Java platforma reciklira) Pristup instance varijablama preko posebnih metoda – "setters and getters" .prikrivanje informacija (instance varijabli) .enkapsulacija stanja .kontrola pristupa i dozvoljenih vrednosti .promena naziva instance varijabli bez posledica po klijenta .odstupanje od te ideje da bi se klasa učinila kompaktnijom, ili iz drugih razloga ( public ) Opšti oblik korišćenja instance metode: .objectReference.methodName(argumentList); objectReference.methodName(); Primer: System.out.println("X coordinate of origin_one: " + origin_one.getX());
Objekat klase Character koristi se umesto primitivnog tipa char kad se zahteva objekat Stringovi Nizovi od više karaktera kao celine Objekat klase String (pogledati u API) Objekat klase StringBuffer ( string koji se konstruiše ili se menja dinamički) Tipični načini za kreiranje String objekata Primer: String src = "Oh, yeah!"; Obavezan način za kreiranje StringBuffer objekata – korišćenje new Primer: String src = "Oh, yeah!"; int len = src.length(); StringBuffer dest = new StringBuffer(len); Neke karakteristične get medote klase String Primer: String src = "Oh, yeah!"; int len = src.length(); StringBuffer dest = new StringBuffer(len); U prevodu: Definiše se varijabla src tipa String, i dodeljena joj je vrednost “Oh, yeah”. Dalje se definiše varijabla len tipa int i dodeljena joj je vrednost dužine stringa src (preko metode length je objektu src “isčupana” vrednost dužine src – u ovom slučaju 9). Dalje je preko konstruktora kreiran objekat dest, klase StringBuffer, i odmah je rezervisan prostor od 9 mesta). Napomena: Objekat dest, postaje objekat klase StringBuffer, dobija sve osobine te klase, i nad njim mogu da se koriste sve metode iz klase StringBuffer. Metode te klase uvek su dostupne u Java API-ju Neke karakteristične setter (mutator) metode ("pisači") append(char c) – dodaje karakter c u StringBuffer objekat; setCharAt(int index, char ch) – umetanje karaktera; insert(int offset, String str) – umetanje stringa; Napomena: Sve metode iz Java API-ja Metoda toString() Često je potrebno pretvoriti objekat u string klase nasleđuju toString() iz klase Object Metoda valueOf(...) konverzija varijabli raznih tipova u String Klase za formatiranje brojeva: NumberFormat , DecimalFormat Klasa za matematičke funkcije: Math Napometa: Sve navedeno pogledati u API-ju Vektori (Nizovi) Strukture koje sadrže više vrednosti/objekata istog tipa/klase dužina vektora se određuje prilikom njegovog kreiranja i nakon toga je fiksna Elementi (komponente) vektora se indeksiraju Skraćena sintaksa za kreiranje i inicijalizaciju vektora: boolean[] answers = { true, false, true, true, false }; Znači: Definiše se niz sa nazivom answers tipa boolean, i odmah mu se dodeljuju vrednosti, za prvi index true, za drugi index false…i tako redom. Vektori objekata sadrže reference na objekte (adrese) objekti moraju da postoje! String[] anArray = new String[5];
Deklaracija klase Konstruktori
Povratna vrednost: svaka metoda koja nije void mora da sadrži return Tip vraćene vrednosti: ako je primitivan, mora da se slaže sa deklarisanim ako je referenca, može da bude ili ta klasa ili podklasa Deklaracija
Argumenti (Parametri) prosleđivanje informacija metodama Pr: double computePayment(double loanAmt, double rate, double futureValue, int numPeriods) Sve unutar zagrade su ulazni parametri koji se prosleđuju metodi compytePayment. Pošto nema void, a definisan je double, ova metoda mora da sadrži return i vrati vrednost tipa float tipovi argumenata mogu da budu i primitivni i reference (objekti, vektori,...) argument ne može da bude metoda, ali može da bude objekat koji ima tu metodu naziv argumenta može da bude isti kao naziv neke varijable članice
Umetnute klase Klase koje su è lanice drugih klasa Pr: class EnclosingClass{
... static class AStaticNestedClass { - Statička umetnuta klasa ... } class InnerClass { - Unutrašnja klasa ... } } Instanca unutrašnje klase može da postoji samo unutar instance spoljašnje klase. Umetnute klase mogu da pristupaju članicama spoljašnje klase čak i ako su ove privatne Sve ono što važi i za druge class članice važi i za statičke umetnute klase: *vezuju se za spoljašnju klasu *ne mogu da koriste instance članice definisane u spoljašnjoj klasi direktno *mogu im pristupati jedino preko reference na objekat spoljašnje klase Sve ono što važi i za druge instance članice važi i za unutrašnje klase: *vezuju se za instance spoljašnje klase *mogu da koriste instance članice definisane u spoljašnjoj klasi direktno *ne smeju da definišu nikakve static članice, jer se vezuju za instance spoljašnje klase Smisao umetnutih klasa *neke klase imaju smisla jedino unutar neke druge klase *primer: kursor ima smisla jedino uz neku tekst komponentu