Sunday 13 April 2014

Nizovi

Nizovi su skupovi podataka istog tipa. Niz u Javi je objekat.

tipPodataka [ ] nazivNiza = new tipPodataka [duzinaNiza];

Ovako uopšteno izgleda kreiranje jednog niza. Prvo se navodi tip podataka koje ćemo smeštati u taj niz. Zatim idu otvorena i zatvorena kockasta zagrada, a to je oznaka za niz. Onda se navodi naziv niza. I sa ovim smo izvršili deklaraciju niza.
Sa desne strane od jednako se ustvari pravi niz. Prvo se nnavodi klučna reč new, a zatim tip podataka koji će se čuvati u ovom nizu i u kockastim zagrada navodi se dužina niza, tj. koliko će elemenata niz imati.

Primer:

int [ ] celiBrojevi = new int [5];

Ovom linijom koda sam kreirala niy u koji ću da smeštam cele brojeve (int), a koji se zove celiBrojevi i niz je dužine 5.

Ako su nam poznati svi elementi niza koje želimo da sačuvamo u njemu onda ne moramo navoditi dužinu niza i niz možemo kreirati na sledeći način.

Primer:

Želim da kreiram niz u kome ću čuvati imena mojih prijatelja : Maja, Ivan, Tijana. Tip podataka koji će niz sadržati je očigledno String, pa će kreiranje niza izgledati ovako.

String [ ] prijatelji = {"Maja", "Ivan", "Tijana"};

Prvi deo, deklaracija niza je isti kao i u predhodnom slučaju, dok se inicijalizacija razlikuje.

Svako mesto u nizu ima svoju vrednost indeksa. Kao i ostalo brojanje u Javi i indeksi niza počinju od nule. Tako će Maja biti na mestu sa indeksom 0, Ivan na mestu sa indeksom 1, a Tijana na mestu sa indeksom 2.
Primetimo da ovaj niz ima tri (3) elementa i to predstavlja dužinu niza, a da je vrednost poslednjeg indeksa za jedan manja, tj. u ovom slučaju ima vrednost dva (2).

Pristup elementu niza

Kada želimo da pristupimo određenom elementu niza to radimo na sledeći način:

nazivNiza [vrednostIndeksa];

prijatelji [2];

Vrednost ovog elementa je Tijana.

Dužina niza

Često nam je potrebno da znamo dužinu niza. Jedan element klase Array (niz) će nam pomoći u tome.

nazivNiza.length;

prijatelji.length;

U našem slučaju ćemo kao rezultat dobiti broj tri (3).

Dodavanje elemenata u niz

Vratimo se malo na početak. Prvo smo kreirali jedan niz, odredili smo mu dižinu, ali taj niz je prazan.

int [ ] celiBrojevi = new int [ 5 ];

Hajde sad da popunimo ovaj niz odgovaraju'im vrednostima. Element u niz se dodaje na sledeći način:

nazivNiza [vrednostIndeksa] = vrednostElementa;

celiBrojevi [0] = 3;

Sada naš niz na prvom mestu, vrednost indeksa 0, ima broj 3. Popunimo i ostala mesta.

celiBrojevi [1] = 6;
celiBrojevi [2] = 9;
celiBrojevi [3] = 12;
celiBrojevi [4] = 15;

Na ovaj način smo popunili niz vrednostima. Sada se u našem nizu nalaze brojevi 3,6,9,12,15.

Kreiranje objekata

Sada kada znamo kako da napišemo klasu i koje elemente u nju da smestimo možemo kreirati objekte te klase. Pogledajmo sledeći primer.

U ovoj klasi imamao sve što je potrebno da bi smo kreirali objekat.

Da bi se moj kod mogao izvršavati dodaću main metodu i u njoj kreirati objekat klase Učenik i to sve izgleda kao na sledećoj slici.

Linija koda koja se nalazi u main metodi nam je kreirala objekat klase Učenik. Sada ćemo je malo izanalizirati.

Prvi deo, sa leve strane od jednako (Ucenik u) je deklaracija promenljive. Deklarišemo promenljivu tipa Ucenik jer ćemo taj tip objekta u njoj da čuvamo i dajemo mu naziv, u ovom slučaju u.
Sa desne strane od jednako se vrši kreiranje objekta. Poziva se ključna reč new, a zatim ide poziv konstruktora klase, gde se svi parametri navedeni u konstruktoru inicijalizuju, tj. dodeljuje im se konkretna vrednost. I tako smo  mi stvorili Jovu Jovica, muskog pola, rođenog 1996 godine.
I na ovaj način smo u mogućnosti da stvorimo još mnoge učenike od iste klase.

Pogledajmo sada seldeću klasu.

U ovom slučaju nam je konstruktor drugačiji. Sada smo vrednosti atributa inicijalizovali direktno u konstruktoru i koliko god učenika da kreiramo pozivom ovog konstruktora svi će oni biti Ana Simić.

Takođe smo u mogućnosti da samo neke atribute inicijalizujemo u konstruktoru, a da ostele prilikom kreiranja objekta.


Sada će nam svi kreirani učenici biti 1999 godište. Tj. svaki objekat koji kreiramo imaće istu vrednost atributa godište, a to je 1999.




Sunday 6 April 2014

Vežba 4.2

(1)Kreirati klasu Učenik koja ima tri atributa ( imePrezime, godinaRođenja, džeparac) i parametarski konstruktor.
(2)Kreirati metodu koja ispisuje na ekranu vrednost atributa klase.
(3)Kreirati metodu koja vraća džeparac uvećan tri puta.
(4)Kreirati metodu koja na osnovu unete godine računa koliko godina ima učenik.

(5) Napisati klasu Glavan koja sadrži main metodu.
(6)Kreirati objekat klase učenik.
(7)Pozvati napisane metode.



Da bi smo videli rezultat rada i metoda povisica i starost izmenicemo malo kod.


I kao rezultat rada dobijamo sledeći izlaz.





Vežba 4.1

Napisati klasu Digitron, sa dva atributa (celi brojevi) i parametarskim konstruktorom.


Napisati klasu Glavna koja sadrži main metodu.


Kreirati objekat klase Digitron.


Dopuniti klasu Digitron metodom koja vraća zbir atributa klase.


Pozvati kreiranu metodu.


Da bismo videli rezultat rada metode ispišimo ga na ekranu.







Saturday 5 April 2014

Vežba 3.3

Inicijalizujmo atribute klase Auto koju smo kreirali u predhodnoj vežbi.


Kompajlirajmo i izvršimo kod.


Sada smo kao rezultat dobili vrednosti kojima smo inicijalizovali promenljive.



Vežba 3.2

Dopunimo klasu Auto koju smo kreirali u predhodnoj vežbi main metodom. I zatim ispišimo linije koda koje ispisuju vrednost atributa na ekranu.


Kompajlirajmo i izvršimo.


Sada nam se greška javila već kod kompajliranja. I to tri greške. 
U suštini mi smo pokušali da nestatički element primenimo na statički način (tj. bez kreiranja objekta). Ovaj problem ćemo rešiti tako što ćemo dodati kjučnu reč static ispred svakog atributa.


Hajde da sada pokušamo da kompajliramo.


Kompajliranje je prošlo bez problema. Sada ćemo da izvršimo naš kod.


I izvršavanje je prošlo bez problema. Ali šta smo to dobili kao rezultat?

Pšto mi nismo inicijalizovali atribute. Prilikom kreiranja njima se dodeljuju default vrednosti, a to je kao što možemo da vdidmo za String null, a za int 0.




Vežba 3.1

Napisati klasu Auto sa najmanje tri atributa.



Kompajlirati i izvršiti.


Kompajliranje je prošlo bez problema. To znači da nemamo greški u samom kodu. Kod izvršavanja javila se greška. Zašto?

Ako vladate engleskim jezikom, a ako nameravate da se bavite programiranjem onda je nephodno, možete objašnjenje pronaći u objašnjenju greške od strane JVM.

Main method not found in class Auto, please define the main method as:
 public static void main (String [ ] args).

Nemamo main metodu u klasi, pa izvršavanje nije moguće. O main metodi pogledajte post Vežba 1.2.






Friday 21 March 2014

Vežbe-Test 1 rešenje


Vežbe-Test 1

  1. Deklarisati tri promenljive. Prva će se koristiti za čuvanje broja učenika u jednom odeljenju, druga za čuvanje imena i prezimena učenika, a treća za čuvanje srednjeg slova.
  2. Napisati tri promenljive i dodeliti im sledeće vrednosti: 22,56 ; true ; Sima .
  3. Deklarisati i inicijalizovati dve promenljive u koje se mogu smestiti realni brojevi. Zatim izračunati i sačuvati njihovu razliku u novoj promenljivoj i rezultat ispisati na ekranu.
  4. Napisati liniju koda koja će na ekranu ispisati vaše ime i prezime.

Vežba 2.4

% - moduo ili ostatak pri deljenju


Proveriti da li je neki broj paran.


Koliko je 5 / 4 ?


Kako da dobijemo precizniji rezultat?



Dobili smo rezultat sa decimala, ali još uvek nije tačano.


E sad je sve kako treba.
Znači možemo cele brojeve da sačuvamo u promenljivoj tipa double (realni brojevi), a da li je moguće obrnuto?











Vežba 2.3

Da li je isto kada kažemo ++broj i broj++?



Razlika je u tome što u prvom slučaju promenljivoj noviBroj prvo prosledi vrednost promenljive broj, a to je 5, pa se onda promenljiva broj povećava za 1. A u drugom prvo se menja vrednost promenljive broj za jedan, pa se nova vrednost prosleđuje promenljivoj noviBroj.


Thursday 20 March 2014

Vežba 2.2

Deklarišite i inicijalizujte jednu promenljivu koja čuva cele brojeve.


Povećajmo ovaj broj za 1.







Vežba 2.1

Deklarisitati promenljive koje će da čuvaju neki ceo broj, ime učenika, cenu proizvoda, broj stanovnika Indije, ?, tačni ili netačno (true, false).



Izvršiti inicjalizaciju ovih promenljivih. Moguća su dva načina.




Ispišite vrednost promenljivih na ekranu.

Primetite da smo koristili ključnu reč static kod deklaracije promenljivih. Bez nje kada bi kompajler prijavio grešku, jer pokušavamo da nešto radimo sa atributima, a nismo kreirali objekat.






Konstruktor

Konstruktori su posebna vrsta metode. 
Jedna klasa može da ima jedan ili više konstruktora, a može i da nema konstruktor.
Da bi se kreirao objekat neke klase poziva se konstruktor. Pomoću njega se inicijalizuju atributi klase.



Na slici iznad je dat primer jednog konstruktora. Konstruktor je uvek public i nemaju povratnu vrednost. 
Naziv konstruktora je isti kao i naziv klase. 
U ovom primeru je dat prazan konstruktor. Kada se u klasi ne navede konstruktor, kompajler poziva ovakav konstruktor koji svaka klasa nasleđuje iz klase Object (nadklase svih klasa).
Kao i metode konstruktori mogu da primaju parametre ili ne.




Na slikama su dati primeri konstruktora.


U ovom parametarskom konstruktoru vršimo inicijalizaciju svih atributa klase. Ključna reč this označava atribut iz klase. (this.a - atribut iz klase, samo a - vrednost iz konstruktora)



Konstruktor se poziva pomoću ključne reči new, a zatim naziv i u zagradama mora se voditi računa da se parametri navedu istim redom kao što je navedeno u definiciji konstruktora. Naravno i vrednosti podataka moraju odgovarati tipu promenljive koja je navedena.

Na ovaj način smo kreirali jedan objekat date klase i sačuvali ga u novoj promenljivoj čiji je tip klasa od koje se pravi objekat.



Wednesday 19 March 2014

Biznis plan

Preduzetništvo

Operatori u Javi i ključne reči

Operatore u Javi možemo podeliti u četri grupe:

  • aritmetički operatori,
  • relacioni operatori,
  •  logički operatori,
  • operator dodele.

U Javi su definisani sledeći aritmetički operatori:


Operator


Značenje
+
sabiranje
oduzimanje
*
množenje
/
deljenje
%
moduo
++
inkrement
– –
decrement

Relacioni operatori su sledeći:

Operator

Značenje

= =
jednako

!=
nejednako

> 
veće od

< 
manje od

>=
veće od ili jednako

<=
manje od ili jednako



Logički operatori su sledeći:

Operator

Značenje

&
AND

|
OR

^
XOR (ekskluzivno OR)

||
Short-circuit OR

&&
Short-circuit AND

!
NOT



Operator dodele je jednostruki znak jednakosti, =

Ključne reči u Javi možete pronaći na sledećem linku.


Ove reči u se ne mogu koristiti kao nazivi klasa, metoda, promenljivih,...



Vežba 1.3



Svaka linija koda se završava tačkom-zarezom (;).

U ovom zadatku su dati primeri komentara. Imamo jednolinijski komentar i višelinijski. Kompajler ignoriše komentar, tj. zna da taj deo koda ne treba da se izvrši.

Pogledajmo linije koda u main metodi. Sve se koriste da bi se nešto ispisalo na ekranu.
Razlika između prve tri linije i druge tri je u tome što se pozivaju dve različite metode klase System.
Prva je println, a druga print. Ovo ln na kraju naziva prve metode nam govori da će se svaka sledeća poruka ispisati u novom redu. Druga metoda ne prebacuje u nov red, sve se ispisuje u jednom redu.
Rezultat rada prve tri linije koda će biti:
1
2
3
Rezultat rada druge tri linije koda će biti:
123

Da vidimo još poslednje tri linije koda.

U prvoj su 1 i 2 prosleđeni kao brojevi i kompajler znak + vidi kao aritmetički operator i jenostavno vrši operaciju sabiranja, pa je rezultat broj 3.

U drugoj liniji koda 1 i 2 su prosleđeni pod znacima navoda, pa ih kompajler ne vidi kao brojeve, već kao String-ove. U ovom slučaju operator + ne vrši operaciju sabiranja. Kada su u pitanju String-ovi, operator + se koristi za nadovezivanje (spajanje), pa je rezultat 12.

U trećoj liniji su 1 i 2 prosleđeni pod apostrofima, pa ih kompajler vidi kao znakove. U ovom slučaju kompajler pronalzi vrednosti za ove znakove u ANSI tabeli znakova i sabira njihove vrednosti iz tabele. U TextPad-u ove vrednosti možete pogledati u opciji Clip Library.

       
Vidite da u ANSI tabeli vrednost za 1 je 49, a za 2 je 50, pa je zato rezultat poslednje linije koda 99.