III Grupa Flashcards
- Cemu sluze dvodimenzionalni nizovi?
Dvodimenzionalni nizovi sluze za kreiranje neke matrice ili tabele.
- Kako se definise dvodimenzionalni niz?
→ Dvodimenzionalni nizovi se popularno nazivaju i matrice ili tabele. To je zato sto imaju dve dimenzije - sirinu i visinu, za razliku od jednodimenzionog niza, koji ima samo sirinu. On se definise slicno kao i jednodimenzionalni niz, medjutim umesto jedne otvorene i zatvorene zagrade koriste se dve [][] koje takodje idu uz tip podataka.
Na primer:
tip[][] imeNiza = new tip[brojElemenata][brojElemenata];
- Sta je matrica?
Matrica je drugi naziv za dvodimenzionalni niz. Njih cine vrste i kolone sa elementima u njima.
- Deklaracija i inicijalizacija dvodimenzionalnog niza - objasnite!!!
→ Dvodimenzionalni nizovi su objekti, dok je promenljiva referenca na te objekte. Oni se deklarisu slicno kao i jednodimenzioni
nizovi samo sto umesto jedne zagrade oni imaju dve
int[][] niz = new int[][];
→ Oni mogu biti fiksirani gde cemo rucno uneti sve vrednosti matrice. int[][] niz = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
→ Ili im se mogu prosledjivati vrednosti. Recimo da napravimo niz velicine 2x2.
int[][] niz = new int[2][2].
Mozemo rucno proslediti vrednost svakog elementa niza. Za sada je niz oblika { {0, 0}, {0, 0} }. Ali ako prosledimo vrednost
niz[0][0] = 1. Niz postaje { {1, 0}, {0, 0} }. Tako kroz dve for petlju mozemo dodeliti vrednosti za ceo niz.
- Objasnite ucitavanje i obradu dvodimezionalnog niza.
→ Za ucitavanje dvodimenzionalnog niza se koriste dve for petlje, jedna se koristi za kretanje po vrsti, a druga za kretanje po koloni:
for (int i = 0; i < matrica.length; i++) {
for (int j = 0; j < matrica.length; j++) {
matrica[i][j] = ulaz.nextInt();
}
}
→ U prvoj iteraciji spoljasnje petlje, promenljiva i ima vrednost 0, a zatim se izvrsava unutrasnja petlja. U prvoj iteraciji unutrasnje petlje, promenljiva j ima vrednost 0, a zatim se izvrsava telo unutrasnje petlje. Element matrica[0][0] tj. u ovom slucaju prvi element matrice dobija vrednost koja se unosi sa tastature. Ovde se zavrsava prva iteracija unutrasnje petlje i unutrasnja petlja se izvrsava sve dok je promenljiva j manja od broja kolona. Kada se zavrsi poslednja iteracija unutrasnje petlje, program se vraca na spoljasnju petlju i ponovo radi isti postupak sve dok je promenljiva i manja od broja vrste.
- Unos dvodimenzionalnih nizova u metode - objasnite!
→ Dvodimenzionalni niz se ubacuje u neki metod na isti nacin kao sto se ubacuje i jednodimenzionalni nizovi. Niz moze da bude povratna vrednost nekog metoda. Recimo da imamo dve metode. getArray(), koji vraca dvodimenzionalni niz, i sum(int[][] niz), koji vraca vrednost svih elemeanta matrice. public static void main(String[] args) { // ucitavamo matricu int[][] niz = getArray();
// ispisujemo zbir svih elemenata System.out.println(“Zbir svih elemenata niza je: “ + sum(niz)); }
// ovde kreiramo matricu public static int[][] getArray() { // ucitavamo skener Scanner sc = new Scanner(System.in); // pravimo niz velicine 4x3 int[][] niz = new int[3][4]; //ucitavamo matricu koriscenjem dve for petlje. for ( int i = 0; i < niz.length; i++ ) { for ( int j = 0; j < niz[i].length; j++ ) { niz[i][j] = sc.nextInt(); } } return niz; }
public static int sum(int[][] niz) { // postavljamo zbir jednak 0 int zbir = 0; // prolazimo kroz elemente matrice for ( int i = 0; i < niz.length; i++ ) { for ( int j = 0; j < niz[i].length; j++ ) { // dodajemo vrednosti elemenata matrica zbiru zbir += niz[i][j]; } } // vracamo zbir return zbir; }
- Sta je objektno-orijentisano programiranje?
Objektno-orijentisano programiranje je programiranje sa upotrebom objekata. Ono nam omogucava efektivni razvoj velikih softverskih sistema i GUI.(Grafickih korisnickih interfejsa).
- Sta je objekat? Objasnite primenu objektnog tipa podataka.
Objekat ima svoj jedinstveni identitet i svoja svojstva, kao sto su stanje i ponasanje. On predstavlja entitet iz stvarnog zivota. Recimo da hocemo da napravimo program koji opisjue neki fakultet. On ce imati objekte kao profesor, student, radnik… ali i sam fakultet. Svi ti objekti koji poseduju neku funkcionalnost ili nad kojima se moze izvoditi neka aktivnost u odrjedjenoj situaciji su objektni tip podataka.
- Sta je klasa? Kako se graficki (UML) predstavlja klasa?
Klasa opisuje objekte sa slicnim karakteristikama i ponasanjima ( ona je opsti opis nekog objekta ). UML dijagram klasa prikazuje skup klasa, intefrejsa i njihovih relacija donosno opisuje strukturu sistema. Klese predstavljaju apstrakciju koja odredjuje zajednicku strukturu i ponasanje niza objekata. Objekti su instance klasa, koje se stvaraju, modifikuju svoje stanje i unistavaju tokom izvodjenja sistema. Svaki objekat ima stanje koje obuhvata vrednosti atributa i njenih veza sa drugim objektima. Svaka klasa sastoji se od imena, atributa i metoda.
- Objasnite kako se kreira klasa?
Klasa se kreira desnim klikom na paketu u kome zelite da napravite klasu. Izabirom na opciju New pojavljue se meni sa svim mogucnostima. Tu mozemo izabrati Java Class, nakon cega unosimo ime klase. Ono se pise Velikim pocetnim slovom, dok su paketi malim.
- Od kojih elemenata se sastoji klasa?
Klasa se sastoji od indetifikatora, atributa i metoda.
- Objasnite razliku i primenu statickih i objektnih clanova klase.
→ Staticki atributi imaju vrednost koja se ne menja u toku izvrsavanja programa, ovo znaci da za sve staticke atribute i metode stoji jedna ista vrednost za sve objekte.
→ Objektni atributi i metode u klasi imaju promenljivu vrednost koja je razlicita za svaki objekat.
- Opsti oblik predstavljanja klase - objasnite!
→ Telo klase sadrzi definicije statickih i ne statickih clanova klase. Opsti oblik je vrlo jednostavam u Javi.
→ Modifikatori klase nisu obavezni, ali se mogu sastojati od jedne ili vise reci kojima se odredjuju izvesne karakteristike klase koja se definise. To su default, public, private i protected.
→ Ime klase se gradi na uobicajeni nacin, uz to da sve reci imena klase pocinju velikim slovom.
→ Telo klase sadrzi definicije statickih ili ne statickih clanova klase.
Primer:
modifikatoriKlase class ImeKlase {
teloKlase;
}
- Sta su lokalne, a sta globalne promenljive? Objasnite oblast vazenja promenljive.
→ Globalna promenljiva metoda postoji od momenta kada se njena klasa prvi put koristi pa sve do kraja izvrsavanja celog programa.
→Lokalne promenljive dobijaju vrednost pre koriscenja.
- Objasnite kljucne reci this i super.
→ Rec this oznacava promenljivu klasnog tipa koja u trenutku poziva metoda dobija vrednost reference na objekat koji je metod pozvan.
→ Kljucna rec super sluzi za pozivanje metoda iz superKlase.
- Sta su omotacke klase i koja je njihova namena?
Omotacka klasa sadrzi “umotan” primitivni tip i time ih pretvara u objekte i omogucava da se nad njima sprovedu operacije kao i nad drugim objektima. Namena omotackih klasa se ogleda u tome sto obuhvataju neke korisne staticke konstante i metode koji olaksavaju rad sa primitivnim vrednostima.
- Da li je String prost tip podataka? Objasnite ulogu klase String u Java programima.
String ne spada u grupu prostih tipova podataka nego klasnih. String predstavlja klasu na osnovu koje mozemo kreirati objekat koji se sastoji od niza karaktera. String poseduje specificne metode koje olaksavaju rad sa karakterima.
- Sta je ucaurivanje (enkapsulacija) podataka? Objasnite ukratko ovaj objektno - orijentisani kocept.
Enkapsulacija (ili ucaurivanje) nalaze da svi objektni atributi klase budu skriveni i deklarisani sa modifikatorom private. Potom, pristup vrednostima tih atributa iz drugih klasa omoguciti samo preko njihovih metoda.
- Konverzija izmedju stringova i nizova karaktera - objasnite!
→ Konverzija stringa u niz karaktera se vrsi tako sto prvenstveno definisemo String, a zatim kroz for pelju ispitujemo duzinu definisanog String-a sa komandomg (string.length();), nakon cega unutar for petlje definisemo svaki karakter preko metode charAt(); String str = “Pozdrav”; // prolazenje kroz string for ( int i = 0; i < str.length(); i++ ) { // uzimanje vrednosti karaktera na i-toj poziciji char ch = str.charAt(i); // stampanje karaktera System.out.print(ch); }
- Konverzija oznaka i numerickih vrednosti u stringove - objasnite!
→ Konverzija oznaka ili numerickih vrednosti u string se radi pomocu omotackih klasa. // definisanje inta int i = 12345; // prebacivanje inta u omoracku klasu Integer Integer j = new Inger(i); // ispisanjave Intiger-a preko .toString() metode System.out.pring(j.toString()); // ispisivanje int-a preko .toString() metode System.out.print(Integer.toString(i)); // ispisivanje pomocu .valueOf() metode System.out.print(String.valueOf(j));
- Sta je softverski objekat? Navednite primere softverskih objekata.
Softverski objekti oponasaju stvarne objekte po tome sto imaju pridruzene podatke ( tj. atribute objekta ) i mogucnosti ( koji odredjuju sta objekat da radi ). Objekti iste vrse se definisu koristeci zajednicu klasu. Klasa definise sve atribute objekta iste klase i operacije (metode) koje se mogu nad njima izvrsiti. Recimo da imamo objekat Student on ce u sebi imati atribute kao ime, prezime brojIndeksa i prosek, cije vrednosti oznacavaju kontretnog studenta. Pored toka, svaki takav objekat moze imati metode prikaziPodatke(), dodeliStipendiju(), smanjiZaduzenje() i suspendujStudenta().
- Sta je objekat, a sta referenca na objekat?
Objekat je podatak ciji je tip definisala klasa koja ga stvara. Clanovima objekta se pristupa koristeci oznaku imeObjekta.imeAtributa i imeObjekta.metod(). Ovde je imeObjekta referenca na objekat.
- Sta je konstruktor? Kako se konstruise objekat? Da li konstruktor moze da bude preklopljen - objasnite?
Konstruktor je metod koji stvara objekte svoje klase. Konstruktor ima ime jednako imenu klase, parametre i modifikator pristupa ( public, private ili protected ). On nema povratni tip, posto je rezultat kreirani objekat, tj. referenca na taj objekat. Objekat se konstruise pomocu operatora new. Konstruktor moze biti preklopljen kao i ostale metode. Recimo da imamo tri konstruktora. Jedan prazan, optereceni i konstruktor kopije. Iako svi oni imaju isto ime, razlikuju se po parametrima.