Klase i objekti – osnovni zadaci (Java)

Strana 1 od 4 · Objektno programiranje – primeri
Pre nego što počneš: pročitaj lekcije Klase i objekti u Javi, Objekti i metode.
Kako da vežbaš: napiši klasu i program sam/a, pokreni ga na primeru iz zadatka, pa tek onda otvori uputstvo, a na kraju rešenje. Sva rešenja su u Javi; pomoćne klase su u istom fajlu (bez reči public), pa se program pokreće kao jedan fajl.

Prvi zadaci iz objektnog programiranja u Javi: pravljenje klase sa atributima, kreiranje objekata naredbom new, pristup atributima tačkom (ram1.a) i prve metode koje računaju površinu, zapreminu ili rastojanje. Poslednji zadaci uvode privatne atribute, getere, setere, konstruktore i niz objekata – to se detaljnije vežba na sledećim stranama.

Zadaci 2 i 5 su rešeni i u video lekcijama.

ZADATAK 01Težina: Lako

Dve osobe

Kreirati klasu koja opisuje neku osobu. Za atribute klase staviti sledeće podatke: ime, prezime, pol, jmbg.
U glavnoj klasi napraviti dva objekta koji predstavljaju osobe, zadati im ime, prezime pol i jmbg.
Ispisati podatke o osobama na ekranu.

ZADATAK 02Težina: Lako

Kvadrati

Napraviti program u kome treba kreirati dva objekta, koji predstavljaju kvadrate. Za unete vrednosti stranica, izračunati njihove površine i rezultate prikazati na ekranu.

Rešenje zadatka možete pogledati u sledećem videu:

ZADATAK 03Težina: Lako

Dva kruga i trougao

Kreirati dve klase koje opisuju jedna trougao a druga krug. Za atribute klase trougao staviti sledeće podatke: stranica, visina i površina.
Za atribute klase krug staviti poluprečnik i površinu.
U glavnoj klasi napraviti tri objekta, dva kruga i 1 trougao, zadati za krug poluprečnik, a za trougao stranicu i visinu.
Izračunati površine datih figura.
Ispisati površine svih figura na ekranu.

ZADATAK 04Težina: Lako

Automobili

Napraviti klasu koja opisuje automobil. Navesti 5 atributa proizvoljno(npr. boja, tip auta, cena itd).
U glavnoj(test) klasi kreirati dva objekta koji predstavljaju automobile i zadati im podatke(npr. tip: Fiat punto, boja: crvena, cena 5000).
Ispisati podatke o automobilima na ekranu.

ZADATAK 05Težina: Lako

Tačke u ravni

Kreirati 3 objekta koji predstavljaju tri tačke u ravni A,B,C. Premestiti tačku A u novi položaj A1.
Prikazati koordinate tačaka posle premeštanja. Koordinate tačaka su:
A(2,4)
B(5,-2)
C(-4,2)
A1(1,3)

Rešenje primera možete videti u sledećem videu:

ZADATAK 06Težina: Lako

Kocka i lopta

Kreirati dve klase koje opisuju kocku i loptu.
U glavnoj klasi napraviti tri objekta, dve kocke i 1 loptu, zadati za kocke stranicu , a za loptu poluprečnik.
Izračunati površine datih tela kao i njihove zapremine. Zadatak rešiti upotrebom metoda.
Potrebno je napraviti sledeće metode za sve objekte: površina(), zapremina(), ispisivanje().
Ispisati površine i zapremine svih tela na ekranu.

ZADATAK 07Težina: Srednje teško

Prizma i metode

Napraviti klasu koja opisuje pravilnu četvorostranu prizmu i u njoj napraviti sledeće metode: za unos podataka, za računanje apoteme, za računanje baze, omotača, površine i zapremine i za ispis rezultata. U glavnoj klasi kreirati objekat prizma i preko njega pozivati ove metode po logičnom redosledu.

ZADATAK 08Težina: Srednje teško

Ravnomerno kretanje automobila

Automobil se kreće ravnomerno ka mestu b. Kreirati objekat koji predstavlja auto,ako se zna da mu je početna brzina 4 m/s i početni položaj 5m od početne tačke.
Prikaži brzinu i položaj u početnom položaju.
Izračunaj trenutni položaj posle 3 s i prikaži ponovo tekuće podatke.
Kako bi se podaci promenili da je početna brzina bila 10m/s

ZADATAK 09Težina: Srednje teško

Dve lopte i kvadar

Kreirati 3 objekta, dve lopte i kvadar. Napraviti program koji računa površine i zapremine sva 3 tela za unete vrednosti poluprečnika lopti, odnosno stranica kvadra.

ZADATAK 10Težina: Srednje teško

Rastojanje između dve tačke

Kreirati dva objekta koji predstavljaju tačke u ravni A i B. Napraviti metodu koja računa rastojanje između dve tačke. Iskoristiti kreiranu metodu za računanje rastojanja između tačaka

ZADATAK 11Težina: Srednje teško

Ravnomerno ubrzano kretanje automobila

Automobil se kreće ravnomerno ubrzano ubrzanjem a(unosi korisnik) ka mestu b. Kreirati objekat koji predstavlja auto,ako se zna da mu je početna brzina 4 m/s i početni položaj 5m od početne tačke.
Prikaži brzinu i položaj u početnom položaju
izračunaj trenutni položaj posle 3 s i prikaži ponovo tekuće podatke.Kako bi se podaci promenili da je početna brzina bila 10m/s

ZADATAK 12Težina: Lako

Površine trapeza

Napraviti klasu koja opisuje trapez. Navesti u klasi potrebne atribute trapeza. U glavnoj klasi kreirati dva objekta koji predstavljaju trapeze. Za prvi trapez omogućiti korisniku da unese osnovice trapeza a i b, kao i visinu h. Za drugi trapez su poznate vrednosti koje treba zadati: a=10,b=15, h=5. Izračunati površine oba trapeza i prikazati na ekranu.

ZADATAK 13Težina: Lako

Slobodan pad

Napraviti objekat koji predstavlja telo koje slobodno pada sa neke visine H. Napraviti klasu koja opisuje telo i navesti u toj klasi potrebne podatke(atribute za klasu). Napraviti metodu koja računa brzinu tela pri padu, za neku zadatu početnu visinu. Iskoristiti tu metodu i izračunati brzinu tela pri padu za unetu vrednost početne visine tela.

ZADATAK 14Težina: Srednje teško

Zaposleni u preduzeću

Napraviti klasu koja opisuje zaposlenog. Navesti za atribute: ime, prezime, bruto platu, neto platu, odbici. Napraviti da podaci budu privatni, tako da je potrebno dodati odgovarajuće getere i setere. Dodati i konstruktore, sa i bez parametara, kao i metodu toString koja treba da pripremi podatke o zaposlenom. Napraviti i metodu koja izračunava neto zaradu. (neto=bruto-odbici, a odbitke unosi korisnik).
U test klasi kreirati podatke za n zaposlenih, izračunati neto zarade svih zaposlenih i prikazati na ekranu.

ZADATAK 15Težina: Teže

Kockarnica

Predstaviti igrača u kockarnici(kazinu) klasom koja treba da ima sledeće atribute: ime igrača, ime igre koju trenutno igra („poker“, „ajnc“ ili „rulet“ – druge vrednosti nisu dozvoljene) i stanje na računu. Atributi treba da budu privatni.
Napraviti klasu Kazino koja simulira igranje igrača na sreću . Treba da sadrži kao svoje polje niz igrača u kazinu.

  • toString() poziva toString() svih igrača u nizu.
  • Metoda String najprofitnijaIgra() vraća naziv igre koju igra najveći broj igrača sa računom u minusu. Ako ima više takvih igara, vraća prvu na koju je naišla.
  • U glavnom programu napraviti objekat klase Kazino sa nizom igrača i ispisati rezultate metoda toString() i najprofitnijaIgra().

Primer rezultata izvršavanja:

Toma igra poker i ima 75000 na racunu.
Nikola igra ajnc i ima 23000 na racunu.
...
Česte greške i saveti
  • Klasa je „šablon“, a objekat konkretna stvar: Kvadrat k1 = new Kvadrat(); pravi objekat; bez new promenljiva je null.
  • Svaki objekat ima svoje atribute: k1.a i k2.a su različite vrednosti. Česta greška je prepisivanje reda i zaboravljanje da se k1 promeni u k2.
  • U Javi je 4 / 3 jednako 1 (celobrojno deljenje); za zapreminu lopte piši 4.0 / 3.
  • Posle nextInt() ili nextDouble() sledeći nextLine() vraća prazan red – dodaj jedan prazan nextLine() ili čitaj reči sa next().
  • Ako u jednom fajlu ima više klasa, samo jedna sme biti public – ona sa metodom main, čije se ime poklapa sa imenom fajla.

Proveri znanje

Otvori kviz

Mini kviz: klase i objekti

1. Šta pravi naredba Krug k = new Krug();?




2. Kako se pristupa atributu r objekta k?




3. Koliko je 4 / 3 * Math.PI u Javi?




Dalje