Docsity
Docsity

Pripremite ispite
Pripremite ispite

Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u


Nabavite poene za preuzimanje
Nabavite poene za preuzimanje

Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan


Školska orijentacija
Školska orijentacija


Java-Skripta-Principi programiranja-Informacioni sistemi2, Rezime od Osnovi programiranja

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

2011/2012

Učitan datuma 27.10.2012.

rock.super.star
rock.super.star 🇸🇷

4.8

(8)

85 dokumenti

1 / 19

Toggle sidebar

Ova stranica nije vidljiva u pregledu

Ne propustite važne delove!

bg1
www.puskice.co.yu
Java
>Skripta<
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13

Delimični pregled teksta

Preuzmite Java-Skripta-Principi programiranja-Informacioni sistemi2 i više Rezime u PDF od Osnovi programiranja samo na Docsity!

Java

>Skripta<

Osnove objektno orjentisanog programiranja

Hello World program – primer 1 -

* 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

Objekti – softverski entiteti sastavljeni od varijabli (promenljivih, atributa) i metoda

Klase

Klase – opisi varijabli i metoda za objekte iste vrste Objekti su instance (proizvod) klasa. Klasa predtsavlja „fabriku” koja proizvodi objekte.

Osnovni činioci klasa

  1. Varijable Varijable klase (static) Varijable instanci
  2. Metode metode klase (static) i metode instanci konstruktori
  3. Poruke Tri osnovne komponente svake poruke:  Naziv objekta kome je poruka upućena  Naziv metode koju treba da izvriši po prijemu poruke  Paramteri koji su pozvanoj metodi potrebni Primer
  4. Nasleđivanje
  5. Interfejsi (protokol koji obavezuje klase na određeno ponašanje

Odnos klase i objekta

 Klasa je prototip objekta (mustra)  Objekti se kreiraju instanciranjem klasa  Klasa određuje tip objekta

Nasleđivanje

  • osnovna klasa, podklase, nadklase
  • stablo nasle đivanja (inheritance tree)
  • redefinisanje metoda (method overriding)
  • višestruko korišćenje metoda kroz nasleđivanje

Interfejsi

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

BasicDemo program – primer 2 -

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

Tipovi podataka (promenjivih, varijabli)

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

Primer:

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

Programske instrukcije

Operatori i operacije

  • Svaki operator izvršava neku funkciju
  • Unarni, binarni i ternarni operatori
  • Rezultat izvršavanja operatora zavisi od tipa operanada - Aritmetički operatori
  • adds – sabiranje
  • substract – oduzimanje …dalje: množenje, deljenje, ostatak deljenja op1 – neka varijabla op2 – neka druga varijabla

AritmeticDemo program – primer 4 -

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

Instrukcije

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

  • Vrste kontrolnih instrukcija *petlje while , do-while , for *grananje if-else , switch-case break , continue , label: , return *obrada izuzetaka try-catch-finally , throw while petlje while ( expression ) { statement(s) } expression – kao boolean

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+ }

IfElseDemo program – primer 5 -

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];

Presenter program – primer 6 -

Klase

Deklaracija klase Konstruktori

  • Svrha: inicijalizacija objekata (Kreiranje objekata date klase)
  • Mogućnost definisanja više konstruktora Ko može da kreira instance te klase: Private Nijedna druga klasa. Protected Podklase te klase i klase iz istog paketa. public Bilo koja klasa. no specifier Klase iz istog paketa. Varijable (Promenljive) članice Deklaracija važi u oblasti važenja klase (a ne unutar oblasti važenja metode!)

Metode

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

  • u okviru te metode, taj naziv označava argument
  • this – referenca na trenutni objekat Primer: class Circle { int x, y, radius; public Circle(int x, int y, int radius) { this.x = x; this.y = y; this.radius = radius; } } this se uvek odnosi na onaj objekat čija je metoda trenutno pozvana. (u primeru, this.x je u stvari ono x koje je definisano u klasi, odnosno neposredno ispod klase, dok je samo x, vrednost koja je dodeljena u metodi Circle) Napomena: Varijable koje su definisane u okviru metode, rade samo dok ta metoda radi prenos po referenci (adresi): prenosi se referenca na neki postojeći objekat ali sama referenca se prenosi po vrednosti !!!
  • unutar metode menja se sadržaj (stanje) objekta
  • efekat promena prisutan je i nakon završetka metode Primer, metoda koja radi sa objektima: class Pen { int redValue, greenValue, blueValue; void getRGBColor(RGBColor aColor) { aColor.red = redValue; aColor.green = greenValue; aColor.blue = blueValue; } } ...

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