You are on page 1of 22

Universiteti i Prishtinës

“Hasan Prishtina”
FIEK

Programimi i Orientuar në Objekte


(Ushtrime – java 6&7)

MSc.Valmir SADIKU
valmir.sadiku@uni-pr.edu
Definimi i klasave dhe objekteve (1)

• Objekti paraqet një entitet në jetën e përditshme


i cili mund të identifikohet.
• Objektet kanë tri karakteristika:
– Gjendja, të dhënat e brendshme (data fields).
• biçikleta: shpejtësia aktuale, numri i rrotullimeve të
petaleve etj.
– Sjellja, metodat.
• Biçikleta: frenimi,ndryshimi i shpejtësisë, kthimi etj.
– Identiteti, ka një adresë unike në memorije.
• Objekti është instancë e klasës

MSc.Valmir Sadiku 2
Definimi i klasave dhe objekteve (2)

• Klasa ofron një metodë të veçant e njohur si


konstruktor, që thirret në momentin që krijohet
një objekt.
• Konstruktorët mund të kryejnë veprime, mirëpo janë
të dizajnuar për t’i inicializuar veprimet, siç
janë variablat brenda klasës.
– Konstruktori duhet të ketë emër të njejtë me
klasën
– Nuk ka return apo void
– Konstruktori thirret përmes operatorit neë,
atëherë kur krijohet objekti

MSc.Valmir Sadiku 3
MSc.Valmir Sadiku 4
MSc.Valmir Sadiku 5
Detyra 1
Të shkruhet programi që përmban klasën Drejtekendeshi për
të përfaqësuar një drejtëkëndësh. Klasa duhet të përmbaj:

• Dy fusha me të dhëna, gjeresia dhe gjatesia të tipit


double. Vlerat e nënkuptuar le të jenë 1.
• Një konstruktor pa parametra që krijon një
drejtëkëndësh të nënkuptuar.
• Një konstruktor me parametra që merr vlera të caktuara
për gjeresin dhe gjatesin
• Metoda me emrin llogariteSiperfaqen() që llogaritë
sipërfaqen e drejtekëndeshit
• Metoda me emrin llogaritePerimetrin() që llogaritë
perimetrin e drejtekëndeshit.
MSc.Valmir Sadiku 6
Pasimi i argumenteve

• Ekzistojnë dy mënyra që mund të përdoren për


pasimin e argumenteve të metodës:
– Thirrja përmes vlerës (call-by-value)

Drejtekendeshi objDrejtNew=new Drejtekendeshi(2.0,3.5);

– Thirrja përmes referencës (call-by-reference)

objDrejt.gjatesia=3.5;
objDrejt.gjeresia=13.5;

MSc.Valmir Sadiku 7
Detyra 2
Të modifikohet detyra 1 ashtu që pasimi i argumeteve të
bëhet përmes mënyrës call-by-reference.

MSc.Valmir Sadiku 8
Variablat statike, metodat statike dhe
konstantet
• Variabla statike (variabla të klasës) mund të
shkëmbehet nga të gjitha objektet e klasës.
– Ruajtja e vlerave bëhet në lokacionin e njejtë të meories.
– Nëse njëri objekt ndryshon vlerat, të gjitha objektet
afektohen.
• Metodat dhe variablat statike mund të thirren pa
krijuar instancë të klasës ( d.m.th. pa krijuar
objekt), vetëm me emrin e klasës.
• Konstantet shkëmbehen nga të gjitha objektet e
klasës, për këtë arsye deklarohen si final static.
System.out.println(Drejtekendeshi.llogaritePerimetrin());
Drejtekendeshi.gjatesia=5; MSc.Valmir Sadiku 9
Detyra 3
Të modifikohet detyra 2 ashtu që:
• Fushat me të dhëna gjeresia, gjatesia dhe metoda
llogariteSiperfaqen() të jenë statike.

MSc.Valmir Sadiku 10
Modifikatorët e qasjes

• Modifikatorët e qasjes përdoret për të treguar


dukshmërinë e klasës dhe të anëtarëve të saj.
• Nëse përdoret modifikuese public kjo nënkupton se
klasa, metodat dhe fushat me të dhënat (variablat)
mund të qasën nga çfarëdo klase.
• Nëse nuk përdoret modifikues të qasjes kjo nënkupton
që nga e njëjta paketë klasa, metodat dhe fushat me
të dhëna janë publike.
• Përveç modifikatorit public kemi edhe private dhe
protected. Modifikatori private mund të qaset vetëm
brenda klasës.

MSc.Valmir Sadiku 11
MSc.Valmir Sadiku 12
Enkapsulimi i fushave me të dhëna

• Për ta bër enkapsulimin e të dhënave përdoren


metodat get dhe set.

MSc.Valmir Sadiku 13
Detyra 4
Të shkruhet programi që përmban klasën Prizmi për të
përfaqësuar një prizëm. Klasa duhet të përmbaj:

• Dy fusha me të dhëna, gjeresia dhe gjatesia të tipit


double. Vlerat e nënkuptuar le të jenë 0.
• Fusha private lartesia të tipit double. Vlera e nënkuptuar
le të jetë 0.
• Një konstruktor pa parametra që llogarite vellimin e
prizmit të nënkuptuar.
• Një konstruktor me parametra që merr vlera të caktuara për
gjeresin dhe gjatesin
• Metodat vendosVlerenLartesi() që përdoret për vendosjen e
vlerës së lartësisë
• Metoda me emrin llogariteVellimit() që llogaritë vellimin
e prizmit. MSc.Valmir Sadiku 14
Detyra 5
Të shkruhet programi që përmban klasën Cilindri për të
përfaqësuar një cilindër. Klasa duhet të përmbaj:

• Dy fusha me të dhëna private lartesia dhe rrezja të tipit


double. Vlerat e nënkuptuar le të jenë 0.
• Konstaten PI.
• Një konstruktor pa parametra që llogarite vellimin e
nënkuptuar të cilindrit.
• Metoda me emrin vendosVlerenRrezes(),
vendosVlerenLartesis(), merrVlerenRrezes(),
merrVlerenLartesise() per te manipuluar me variablat e
klasës.
• Metodat llogariteVelliminCilindrit() që përdoret
llogaritjen e Vellimit të cilindrit.
MSc.Valmir Sadiku 15
Detyra 6 (1)
Të definohet klasa me emrin Account që përmban:

• Fushën me të dhëna private e tipit int me emrin id me


vlerë të nënkuptuar 0.
• Fushat me të dhëna private e tipit double balance dhe
annualInterestRate me vlera të nënkuptuara 0.
• Fushën me të dhëna private e tipit String me emrin
dateCreated që ruan datën kur është krijuar llogaria.
• Një konstruktor pa parametra që krijon një llogarit të
nënkuptuar.
• Një konstruktor që krijon një llogari me id, balanc
fillestar, shkallën e interesit vjetor dhe datën e
krijimit.
MSc.Valmir Sadiku 16
Detyra 6 (2)
• Metodat get dhe set për id, balance, annualInterestRate
dhe dateCreated.
• Metoda getMonthlyInterestRate() që kthen shkallën e
Interesit mujor.
• Metoda getMonthlyInterest () që kthen interesin mujor.
• Metoda widthdraw () që mundëson tërheqje nga llogaria.
• Metoda deposit () që mundëson deponimin në llogari.

MSc.Valmir Sadiku 17
Detyra 7 (1)
Të definohet klasa me emrin QuadraticEquation për ekuacionin
−𝒃± 𝒃𝟐 −𝟒𝒂𝒄
kuadratik: 𝒙 = 𝟐𝒂
, që përmban:

• Fushat me të dhëna private a,b,c;


• Një konstruktor me argumente a,b,c;
• Tri metoda get për a,b,c;
• Metoda me emrin getDiscriminant() që kthen diskriminantën e cila
është 𝒃𝟐 − 𝟒𝒂𝒄.
• Metodat me emrin getRoot1() dhe getRoot2() për llogaritejen e
rrënjëve x1 dhe x2.
• Nëse diskriminanta është pozitive, të paraqiten dy rrënjët. Nëse
diskriminanta është zero të paraqiten rrënjët me vlera të njejta
dhe nëse diskriminanta është më e vogël se zero të paraqitet
mesazhi “Ekuacioni ka dy zgjidhje të cilat janë numra kompleks”
MSc.Valmir Sadiku 18
Detyra 7 (2)

MSc.Valmir Sadiku 19
Detyra 8 (1)
Të definohet klasa me emrin Fan që përfaqëson një freskuese.
Klasa përmban:

• Konstantet SLOW, MEDIUM dhe FAST me vlerat e tyre 1,2 dhe


3 që tregojnë shpejtësin e freskueses.
• Fusha me të dhëna private speed e tipit int që tregon
shpejtësinë e freskueses me vlerë të nënkuptuar SLOW.
• Fusha me të dhëna private on e tipit boolean që tregon
nëse freskuesja është e lëshuar apo jo me vlerë të
nëkuptuar false.
• Fusha me të dhëna private radius e tipit double që tregon
rrezen e freskueses me vlerë të nënkuptuar 5.
• Një fushë me të dhëna color e tipit string që paraqet
ngjyrën e freskueses me vlerë të nënkuptuar blue.
MSc.Valmir Sadiku 20
Detyra 8 (2)
• Metodat get dhe set për të gjitha fushat me të dhëna.
• Një konstruktor pa parametra që krijon një freskuese të
nënkuptuar.
• Metoda toString() që kthen një përshkrim lidhur me
freskuesen. Nëse freskuesja është e lëshuar në dalje
duhet të jetë shpejtësia e freskuesës, ngjyra dhe
rrezja. Nëse freskuesja është është e ndalur metoda
kthen mesazhin “Fan is off” dhe të dhënat si ngjyra dhe
rrezja.

MSc.Valmir Sadiku 21
Pyetje/Diskutime

• Ju faleminderit!

MSc.Valmir Sadiku 22

You might also like