SHKENCA KOMPJUTERIKE 1
SHKENCA KOMPJUTERIKE 1
(SHK1)
(SHK1)
Fatos MaxhuniFatos Maxhuni ([email protected])([email protected]) Fakulteti i Shkencës Kompjuterike dhe Inxhinierisë Fakulteti i Shkencës Kompjuterike dhe Inxhinierisë
Hyrje në SHK1
Hyrje në SHK1
•
•Cili është qëllimi i kësaj lënde ?Cili është qëllimi i kësaj lënde ?
-- Do të Do të jetë fillimi i një jetë fillimi i një edukimi tuedukimi tuaj si Prograj si Programeramer(Inxhinier (Inxhinier të softutë softuerit)erit) •
•Cila është rëndësia e kësaj lënde ?Cila është rëndësia e kësaj lënde ?
-- Nga kjo lëndë do të fitoni dijeninë si të përdorni gjuhNga kjo lëndë do të fitoni dijeninë si të përdorni gjuhën programën programuese Javauese Java për të ndërtuar softuer
Llojet softuerëve (Programeve)
Llojet softuerëve (Programeve)
•
• Kompjuterët janë pajisje të fuqishme harduerike që nuk mund të bëjnë asgjëKompjuterët janë pajisje të fuqishme harduerike që nuk mund të bëjnë asgjë pa pjesën softuerike
pa pjesën softuerike •
• Në përgjithësi ekzistojnë tri lloje të Në përgjithësi ekzistojnë tri lloje të softuerëvesoftuerëve::
-- SistemeSistemet t operatoperativeive
-- PrograProgramet met aplikataplikativeive
-- VeglVeglat pat për zhër zhvillim villim të softë softuerittuerit(SDK)(SDK) •
• Si zhvillues të softuerit mund të ndodhë të shkruani njërën apo që të tri llojetSi zhvillues të softuerit mund të ndodhë të shkruani njërën apo që të tri llojet e softuerëve të lartpërmendur
e softuerëve të lartpërmendur
Programet e Sistemeve Operative (O/S)
Programet e Sistemeve Operative (O/S)
•
•O/S programet e kontrollojO/S programet e kontrollojnë harduerin dhe i në harduerin dhe i mundësojnë programmundësojnë programeveeve aplikative të
aplikative të ekzekutohekzekutohenen •
•O/S kryesisht janë të ndërtuara që O/S kryesisht janë të ndërtuara që të ekzekutohen në platforma të veçantatë ekzekutohen në platforma të veçanta hardu
harduerike, p.sh. erike, p.sh. në x86në x86apo MACapo MAC •
•Kryesisht këto janKryesisht këto janë programet më kompë programet më komplekse dhe më të vështira për t’ulekse dhe më të vështira për t’u
ndërtuar dhe testuar ndërtuar dhe testuar •
Programet Aplikative
Programet Aplikative
•
•Këto programe kryejnë punë të rëndësishme për shfrytëzuesitKëto programe kryejnë punë të rëndësishme për shfrytëzuesit •
• Aplikacionet kryesisht Aplikacionet kryesisht janë të ndjanë të ndërtuara që të ekzeërtuara që të ekzekutohen në kutohen në sistemesisteme
operative
operative të veçantatë veçantadhe platforma të veçdhe platforma të veçanta harduerikeanta harduerike •
•Shfrytëzuesit kryesisht duhet të ofrojnë informata të Shfrytëzuesit kryesisht duhet të ofrojnë informata të hollësishme përhollësishme për funksionalitetin që programi duhet ta ketë, në
funksionalitetin që programi duhet ta ketë, në mënyrë që programerët tëmënyrë që programerët të ndërtojnë aplikacionin specifik që përmbushë kërkesat e shfrytëzuesit ndërtojnë aplikacionin specifik që përmbushë kërkesat e shfrytëzuesit •
•PP.sh. Word, PowerPoint, N.sh. Word, PowerPoint, Netscape, etscape, etjetj
Veglat për zhvillim të soft
Veglat për zhvillim të softuerëve
uerëve
•
• Veglat Veglat për zhvillim të për zhvillim të softuerëve (ansoftuerëve (ang. Software Deg. Software Development Kit -velopment Kit -SDK) janëSDK) janë programe specifike që i mundësojnë zhvilluesve të programeve të shkruajnë programe specifike që i mundësojnë zhvilluesve të programeve të shkruajnë programe k
programe kompjuterike dhe t’i ompjuterike dhe t’i testojnë atotestojnë ato
•
•Zhvilluesit me pZhvilluesit me përvojë kryesisht përvojë kryesisht përdorin “Integrated ërdorin “Integrated DevelopmentDevelopment
Environment
Environment – – IDE”IDE”, por m, por mund të përdoren und të përdoren edhe editorë edhe editorë të thjeshtë për të thjeshtë për tëtë
kompajluar/ekzekutuar (interpretuar) programin kompajluar/ekzekutuar (interpretuar) programin •
•P.sh.P.sh.
-- IDE: Dr Java IDE, NetbIDE: Dr Java IDE, Netbeans IDE, Eclipeans IDE, Eclipse, etjse, etj
Llojet e “
Llojet e “Us
User
er
In
Inte
terf
rface
ace”
”
-ëve
-ëve
•
•Janë Janë dy lloje domdy lloje dominuese inuese të “të “useruserinterfinterfaceace” ” -ëve:-ëve:
--CoCommmmananddLinLinee InInteterfrfacacee (C(CLILI))
-- GrGrapaphihicacall UsUsererInInteterfrfacacee (G(GUI)UI) •
•Si zhvillues të softuerit ju duhet të jeni në gjendje të shkruani programe përSi zhvillues të softuerit ju duhet të jeni në gjendje të shkruani programe për dy llojet e “
dy llojet e “useruserinteinterfarfacece” ” -ëve-ëve
Llojet e “
Llojet e “Us
User
er
In
Inte
terf
rface
ace”
”
-ëve
-ëve
•
•ComCommanmanddLinLineeInInterterfafacece(C(CLILI))
-- Në monitor parNë monitor paraqitet kërkesa që shaqitet kërkesa që shfrytëzuesi të fut ndonjë frytëzuesi të fut ndonjë të dhënë.të dhënë.
-- ShfrytShfrytëzuesi i fut të dhënat e kërkuarëzuesi i fut të dhënat e kërkuara, ndërsa progra, ndërsa programi e procesonami e proceson inputi
inputinne shfrye shfrytëzuetëzuesit.sit.
-- Ky është një lloj i vjetër i “Ky është një lloj i vjetër i “useruserinteinterfarfacece” ” -ëve ende i përdorur në disa-ëve ende i përdorur në disa
aplikacione dhe sisteme operative aplikacione dhe sisteme operative
-- Nuk ëshNuk është i përshtatë i përshtatshëm ptshëm për shfrytër shfrytëzim (anëzim (ang. not Userg. not UserFriendFriendly)ly)
Llojet e “
Llojet e “Use
Use
r
r
Int
Int
erf
erface
ace”
”
-ëve
-ëve
•
• GraGraphiphicalcalUseUserr IntIntererfacfacee (GU(GUI)I)
-- Në monitNë monitor paraqior paraqitet dritartet dritarja me tekst dhe komja me tekst dhe komponenponentete grafigrafike duke ike duke i ofruar shfrytëzuesit opsione të ndryshme
ofruar shfrytëzuesit opsione të ndryshme
-- Shfrytëzuesi përdor “Shfrytëzuesi përdor “mousemouse” ” -in dhe tastierën, të bënë zgjidhje nga-in dhe tastierën, të bënë zgjidhje nga opsion
opsionet e oet e ofruarfruara si da si dhe përhe për të shtë shkruarkruar teksttekst
-- TTani përdorani përdoret më shuet më shumë përmë për shkak se koshkak se komponenmponentët për procesitët për procesimm kompj
kompjuterik kushuterik kushtojnë tanitojnë tanimë lirëmë lirë
-- Është më i Është më i përshtapërshtatshëm pëtshëm për shfryr shfrytëzim (angtëzim (ang. User. User FrienFriendly)dly)
-- PP.sh. Microsoft .sh. Microsoft Windows, Microsoft OfWindows, Microsoft Office, etj.fice, etj.
Veglat për z
Veglat për zhvillim të softue
hvillim të softuerëve
rëve
•
Përd
Përdorimi
orimi i e
i e
ditori
ditorit
t
të
të thje
thjeshtë
shtë dhe
dhe Sun
Sun
JDK
JDK
•
•Shkruhet Java kodi në ndonjë editorShkruhet Java kodi në ndonjë editor. File-i . File-i ruhet me të njëjtin emër si ruhet me të njëjtin emër si emri iemri i
klasës
klasës dhe me extdhe me extensionension.. java java . P. P.sh nëse e kemi klasën HelloW.sh nëse e kemi klasën HelloWorldorldatëherëatëherë
ruhet në file-in me emër HelloWorld.java ruhet në file-in me emër HelloWorld.java •
•Në DOS:Në DOS:
--C:\>C:\>javjavac HelloWac HelloWorld.orld.javjavaa(krij(krijoheohet një file-i it një file-i i ri me ri me praprapashpashtesëtesë.class, në.class, në këtë rast HelloWorld.class
këtë rast HelloWorld.class ))
--C:\>java C:\>java HelloWoHelloWorldrld (interpret(interpretohet proohet programi) dhgrami) dhe dërgohet outpe dërgohet output-i nëut-i në konsolë
konsolë
-- C:\>exit C:\>exit (del pre(del prej DOS-j DOS-it)it)
Veglat për zhvillim të soft
Veglat për zhvillim të softuerëve
uerëve
•
Hapat e zhvillimit të softuerit
Hapat e zhvillimit të softuerit
•
•Modeli klasModeli klasik “Watik “Waterferfall”all”
Edito dhe ruaj Edito dhe ruaj kodin burimor kodin burimor Ndërto kodin e Ndërto kodin e programit programit Ekzekuto programin Ekzekuto programin dhe shih rezultatin dhe shih rezultatin Eroret Eroret Eroret Eroret
Eroret
Eroret
•• Gjatë ndërtimit të një programi mund të paraqiten 3 lloje të eroreve:Gjatë ndërtimit të një programi mund të paraqiten 3 lloje të eroreve:
-- CompCompile-tiile-time me errorerror – – që paraqet gabim në sintaksën e programit dhe qëqë paraqet gabim në sintaksën e programit dhe që vërehet
vërehet gjatë kohës së gjatë kohës së kompilimit dhe nukompilimit dhe nuk krijohet file-i me extensionk krijohet file-i me extension .class
.class
-- RunRun-ti-time erme errorror – – që paraqitet gjatë ekzekutimit/interpretimit të programit,që paraqitet gjatë ekzekutimit/interpretimit të programit, p.sh. Pjesëtimi me zero e detyron programin të ndërpritet në mënyrë p.sh. Pjesëtimi me zero e detyron programin të ndërpritet në mënyrë jonormale
jonormale
-- LoLogigicacall ererrororr – – që do të thotë që programi ekzekutohet normalisht mirëpoqë do të thotë që programi ekzekutohet normalisht mirëpo rezultati nuk është ai i prituri
Gjuha programuese Java dhe
Gjuha programuese Java dhe
zhvillimi i softuerit
zhvillimi i softuerit
•
•Gjuhët programueseGjuhët programuese •
•Struktura e programit në JavaStruktura e programit në Java •
•Zgjidhja e problemeveZgjidhja e problemeve •
•Programimi i orientuar/bazuar në objekteProgramimi i orientuar/bazuar në objekte
Gjuhët programuese
Gjuhët programuese
•
•Gjuhët programuese përdoren nga programerët për të Gjuhët programuese përdoren nga programerët për të shkruar programeshkruar programe
kompjuterike kompjuterike •
•Ndonjë gjuhë programuese është më e mirë për ndonjë lloj të programitNdonjë gjuhë programuese është më e mirë për ndonjë lloj të programit dhe për ndonjë lloj të “user
dhe për ndonjë lloj të “user interface” interface” -it, se -it, se tjetratjetra •
•Me siguri se keni dëgjuar për gjuhë të ndryshme programues si: Cobol,Me siguri se keni dëgjuar për gjuhë të ndryshme programues si: Cobol, Basic, C, C++, Java, C#, etj
Gjuhët programuese
Gjuhët programuese
•
•Një gjuhë programuNjë gjuhë programuese specifikon fjalët dhe siese specifikon fjalët dhe simbolet që mund të mbolet që mund të përdorenpërdoren
për të shkruar programe kompjuterike për të shkruar programe kompjuterike •
•Një gjuhë programuNjë gjuhë programuese përdorë rregulla të veçanta ese përdorë rregulla të veçanta që diktojnë se që diktojnë se si fjalëtsi fjalët dhe simbolet mund të kombinohen që të formohen shprehje të vlefshme dhe simbolet mund të kombinohen që të formohen shprehje të vlefshme programuese
programuese •
•Një gjuhë programuese posedon edhe sintaksën edhe semantikën e Një gjuhë programuese posedon edhe sintaksën edhe semantikën e vetvet
Sintaksa dhe semantika
Sintaksa dhe semantika
•
•Rregullat sintaksore tregojnRregullat sintaksore tregojnë si ë si mund të mund të kombinohen fjalët e rezervuara,kombinohen fjalët e rezervuara, simbolet dhe identifikuesit që të krijohet një program i vlefshëm.
simbolet dhe identifikuesit që të krijohet një program i vlefshëm. •
•Semantika tregon kupSemantika tregon kuptimin e timin e një shprehjeje të vlefshme (çka është një shprehjeje të vlefshme (çka është qëllimiqëllimi
dhe roli i
dhe roli i asaj shprehjeje në atë program)asaj shprehjeje në atë program) •
•Një progrNjë program që është korrekt sa i am që është korrekt sa i përket sintaksës nuk do të thotë sepërket sintaksës nuk do të thotë se
është korrekt edhe për nga semantika është korrekt edhe për nga semantika •
•Një program gjithmonë bënë atë që i themi të bënë,Një program gjithmonë bënë atë që i themi të bënë, e jo çka mendojmë t’ie jo çka mendojmë t’i
themi të bënë themi të bënë
Nivelet e gjuhëve programuese
Nivelet e gjuhëve programuese
•
•EkzistoEkzistojnë disajnë disa nivelnivele të e të gjuhgjuhëve programuëve programuese:ese:
-- MMaachchinineeLLananguguaagege -- AAssssememblblyy LaLannguguagagee -- FFouourtrth-h-gegeneneraratitiononlalangnguauagege -- HiHighgh-l-levevelel LaLangnguauagege •
•Çdo lloj i CPU (CentrÇdo lloj i CPU (Central Processingal Processing Unit) e ka gjuhën Unit) e ka gjuhën e vet specifike tëe vet specifike të makinë
makinës (ang. Macs (ang. MachinehineLanguaLanguage). Përbënge). Përbënë instrë instruksiouksionet dhe të dhënatnet dhe të dhënattëtë cilat ekzekutohen direkt nga CPU.
cilat ekzekutohen direkt nga CPU. •
•Gjuhët e tjera kanë rrjedhë nga nevoja që programerët më lehtë tëGjuhët e tjera kanë rrjedhë nga nevoja që programerët më lehtë të shkruajnë dhe lexojnë programet kompjuterike.
shkruajnë dhe lexojnë programet kompjuterike.
Gjuhët programuese
Gjuhët programuese
•
•Çdo lloj i CPU ekzekuton vetëm programet në një gjuhë të Çdo lloj i CPU ekzekuton vetëm programet në një gjuhë të caktuar tëcaktuar të
makinës (ang. Machine Language) makinës (ang. Machine Language) •
•Një program duhet të përkthehet në gjuhë të makinës para se të mund tëNjë program duhet të përkthehet në gjuhë të makinës para se të mund të ekzekutohet
ekzekutohet •
•Kompajleri (ang. CompKompajleri (ang. Compileri) është një softuer i ileri) është një softuer i veçantë i cili mundësonveçantë i cili mundëson
këtë përkthim të kodit këtë përkthim të kodit •
•Kryesisht ky përkthim është nga një gjuhë e nivelit më të lartë në njëKryesisht ky përkthim është nga një gjuhë e nivelit më të lartë në një
gjuhë specifike të makinës (ang. Machine Languag
gjuhë specifike të makinës (ang. Machine Language) për një lloe) për një lloj tëj të veçantë të CPU
veçantë të CPU •
Kompajlimi i kodit në Java
Kompajlimi i kodit në Java
•
•Kompajleri i Java-së bënë përkthimin e JKompajleri i Java-së bënë përkthimin e Java kodit në një rava kodit në një reprezentimeprezentim
specifik të njohur si Jav
specifik të njohur si Java bytecodea bytecodetë ruajtur në një file me prapashtesëtë ruajtur në një file me prapashtesënn .class
.class •
•Java bytecode nuk është gjuhë e Java bytecode nuk është gjuhë e makinës për asnjë CPU specifikemakinës për asnjë CPU specifike •
•Një soNjë softuer tftuer tjetër i njohjetër i njohur si inteur si interpretrpreter-ier-i(në r(në rastin tonastin tonë JVMë JVM-- Java Java VirtuaVirtuall
Machine) e interpreton bytecode-in Machine) e interpreton bytecode-in •
•Java njihet si gjuhë neutrale sa i përket arkitekturës së kompjuterëveJava njihet si gjuhë neutrale sa i përket arkitekturës së kompjuterëve •
•Java nuk lidhet me ndonjë Java nuk lidhet me ndonjë makinë specifikemakinë specifike •
•JVM mund të implementohet në çdo lloj të JVM mund të implementohet në çdo lloj të makinësmakinës
Struktura e programit në Java
Struktura e programit në Java
•
•Në gjuhën programuese Java:Në gjuhën programuese Java:
-- ProProgragrami nmi ndërdërtohtohet nget nga nja një ose ë ose më shmë shumë umë klasklasëë
-- NjNjë klë klasë kasë ka nja një apo ë apo më smë shuhumë atmë atriribubutete
-- NjNjë klë klasë asë ka nka një ajë apo mpo më shë shumumë meë metotodada
-- MetodMetoda përa përmban mban shprehshprehje të je të progrprogramit amit (ang. (ang. progrprogram sam statementatements)ts) •
•Këto terme do të hulumtohen dhe do të shpjegohen më në detal gjatëKëto terme do të hulumtohen dhe do të shpjegohen më në detal gjatë ligjëratave të ardhshme
ligjëratave të ardhshme •
•Çdo klasë e veçantë ruhet në një file me emrin e njëjtë si emri i klasës porÇdo klasë e veçantë ruhet në një file me emrin e njëjtë si emri i klasës por me prapashtesën
me prapashtesën.java .java •
•Një Java file munNjë Java file mund të ketë më tepër se d të ketë më tepër se një klasë në te,një klasë në te,por vetëm njërapor vetëm njëra mund të ketë qasje publike dhe emërtimi i file-it bazohet në emrin e kësaj mund të ketë qasje publike dhe emërtimi i file-it bazohet në emrin e kësaj klase
klase •
•Një Java aplikacion fillon nga klasa e cila ka metodënNjë Java aplikacion fillon nga klasa e cila ka metodënmain(…)main(…) (shih(shih
shembullin
Struktura e programit në Java
Struktura e programit në Java
//komentet
//komentet për klasënpër klasën pu
publibliccclclasasssMyMyPrProgograramm{{
//komentet
//komentet për atributpër atributetet private String
private String emri = “Fatos”;emri = “Fatos”; ……
…… …… ……
//komentet
//komentet për metodapër metodatt pub
publiclic statstaticicvoidvoidmainmain(St(Stringring[] [] argvargv){ ){ //nj//njihet ihet edhe edhe sisi “ “the signaturethe signature” ” …… …… …… …… } } } }
Komentet
Komentet
••KomKomentet brentet brenda kodit njihenda kodit njihen si “en si “inlineinlinedocudocumenmentatiotationn” ” •
• Ato Ato futen në futen në kod për kod për të dhëntë dhënë shpjegime ë shpjegime rreth korreth kodit atyre dit atyre që e lexojnqë e lexojnëë
kodin kodin •
•Nuk e afektojnë si punon programi, pasi që ato injorohen nga kompajleriNuk e afektojnë si punon programi, pasi që ato injorohen nga kompajleri •
•Ekzistojnë 3 lloje të Ekzistojnë 3 lloje të komentevekomenteve::
// Ky
// Ky koment koment vlen vetëm vlen vetëm për këtë rrpër këtë rreshtesht /* Ky
/* Ky koment koment vlen për vlen për krejt bllokun krejt bllokun dhe vlen dhe vlen deri sa të deri sa të gjendet simbgjendet simbolioli terminues
terminuesdhe mund të shkdhe mund të shkoj në disa rreshtoj në disa rreshta */a */ /**
Identifikuesit (ang. Identifiers)
Identifikuesit (ang. Identifiers)
•
•Identifikuesit Identifikuesit janë fjalët/simbolet që i përdor progrjanë fjalët/simbolet që i përdor programeriameri në një programnë një program.. •
•Një identifikues mund të ndërtohet nga shkronjat, numrat, shenja (_)Një identifikues mund të ndërtohet nga shkronjat, numrat, shenja (_)
(ang. under
(ang. underscore) si dhe score) si dhe nga shenja e dollarit $nga shenja e dollarit $ •
•Identifikuesi nuIdentifikuesi nuk mund të k mund të filloj me filloj me numërnumër •
•JavJava ësha është “të “casesensitivecasesensitive” që d.m.th –” që d.m.th – fjalët Total, total dhe TOTALfjalët Total, total dhe TOTAL
trajtoh
trajtohen si en si identifikues të identifikues të ndryshëmndryshëm •
•Ligj i pashkruar por i përvetësuar nga programerët që shkruajnë programeLigj i pashkruar por i përvetësuar nga programerët që shkruajnë programe
në Java, përdorin këtë formë të shkrimit së kodit: në Java, përdorin këtë formë të shkrimit së kodit:
•
• Për emra të klPër emra të klasave përdoret Titlecase: p.sh HelloWorasave përdoret Titlecase: p.sh HelloWorldld •
• Emrat e atributeve dhe metodave fillojnë me Emrat e atributeve dhe metodave fillojnë me shkronja të vogla: p.sh.shkronja të vogla: p.sh.
printName printName •
• Emrat e konstanteve me të madhe: p.sh. MAXIMUMEmrat e konstanteve me të madhe: p.sh. MAXIMUM
Identifikuesit
Identifikuesit
•
•NdonjëherNdonjëherë ne i zë ne i zgjedhim identifikuesit tanë, si në shembullin më lartgjedhim identifikuesit tanë, si në shembullin më lart MyProgram
MyProgram •
•NdonjëherNdonjëherë i ë i përdorim identifikuesit të cilët përdorim identifikuesit të cilët i kanë i kanë zgjedh programzgjedh programerët eerët e
tjerë, p.sh.
tjerë, p.sh.println println •
•Shpesh përdoShpesh përdorim identifikues të cilët rim identifikues të cilët njihen si të rezervuar dhe që kanënjihen si të rezervuar dhe që kanë
kuptim të veçantë në Java, p.sh. kuptim të veçantë në Java, p.sh. int int •
•Një identifikues i rezervuar nuk mund të përdoret për asgjë tjetër pos përNjë identifikues i rezervuar nuk mund të përdoret për asgjë tjetër pos për
çka është i definuar çka është i definuar
Fjalët e rezervuara
Fjalët e rezervuara
aabbssttrraacct t aasssseerrtt bboooolleeaann bbrreeaakk bbyyttee ccaassee ccaattcchh cchhaarr ccllaassss const*const* ccoonnttiinnuuee ddeeffaauulltt ddoouubbllee ddoo eellssee eennuumm eexxtteennddss falsefalse
ffiinnaall ffiinnaallllyy ffllooaatt ffoorr goto*goto* if if iimmpplleemmeennttss iimmppoorrtt iinnssttaanncceeooff iinntt iinntteerrffaaccee lloonngg
nnaattiivvee nneeww nullnull ppaacckkaaggee pprriivvaattee pprrootteecctteedd ppuubblliicc rreettuurrnn sshhoorrtt ssttaattiicc ssttrriiccttffpp ssuuppeerr sswwiittcch h ssyynncchhrroonniizzeed d tthihis s tthhrroow w tthrhroowwss trtraannssiieenntt
true
true ttrryy vvooiidd vvoollaattiillee wwhhiillee
Në
Në uebuebfaqefaqen më n më poshtë poshtë mundmundtëtëgjeni gjeni shpjeshpjegim gim për për secilisecilinn identidentifikuifikues tëes të rezer
rezervuara vuara nënëJavJava:a:
http://en.wikibooks.org/wiki/Java_Programming/Keywords http://en.wikibooks.org/wiki/Java_Programming/Keywords
Hapë
Hapësirat
sirat
(ang. whi
(ang. white
te
spaces
spaces)
)
•
•Hapësirat, reshtat e Hapësirat, reshtat e zbrazët,Tzbrazët,TABAB njihen si “njihen si “whwhititee spspaceace” ”
•
•Këto hapësira përdoren për Këto hapësira përdoren për t’i ndarë fjalët dhe simbolet në program si dhet’i ndarë fjalët dhe simbolet në program si dhe
për ta strukturuar programin që të je
për ta strukturuar programin që të jetë më i lexueshëmtë më i lexueshëm •
•Sa i përket kompajlSa i përket kompajleriterit këto hapësirkëto hapësira injorohena injorohen •
•Sa i përket lexueshmërisë së kodit, ekzistojnë disa mënyra se si tëSa i përket lexueshmërisë së kodit, ekzistojnë disa mënyra se si të
formatohet programi në Java formatohet programi në Java •
Zgjidhja e problemeve
Zgjidhja e problemeve
•
•Qëllimi i një programi kompjuterik është zgjidhja e ndonjë problemi tëQëllimi i një programi kompjuterik është zgjidhja e ndonjë problemi të
veçantë veçantë •
•Zgjidhja e një problemi të veçantë konsiston nga një numër i Zgjidhja e një problemi të veçantë konsiston nga një numër i aktiviteteve:aktiviteteve:
-- DuDuhehet të kut të kuptptohohet met mirë irë prproboblemlemii
-- KoKonsnsideiderorohehen min mirë të gjirë të gjiththa altera alternanativtivatat -- Të Të didizazajnjnohohet zet zgjgjididhjhjaa -- Të Të imimplplememenentotohehet zgt zgjijidhdhjaja -- TTesestotohehet t zgzgjijidhdhjejenn •
•Këto aktivitet nuk janë liKëto aktivitet nuk janë lineare por ato mbulohen nga njëra tjetra dheneare por ato mbulohen nga njëra tjetra dhe
bashkëveprojnë bashkëveprojnë
Zgjidhja e problemeve
Zgjidhja e problemeve
•
•Çelësi i zgjidhjes së Çelësi i zgjidhjes së problemit është zbërthproblemit është zbërthimi i imi i problemit në pjesë më tëproblemit në pjesë më të
menaxhueshme menaxhueshme •
•Ndërtimi i një softueri nënkuNdërtimi i një softueri nënkupton zbërthimin dhe dizajniminpton zbërthimin dhe dizajnimine pjesëve tëe pjesëve të
veçanta veçanta •
•Programimi Programimi i bazuar në objekte (ang. Object-orientedi bazuar në objekte (ang. Object-orientedprogrammprogramming) ështëing) është
shumë i përshtatshëm për këtë lloj të zbërthimit shumë i përshtatshëm për këtë lloj të zbërthimit •
•Ne gjithmonë do ta zbërthejmë zgjidhjen tonë në pjesë, të njohura siNe gjithmonë do ta zbërthejmë zgjidhjen tonë në pjesë, të njohura si klasë
Programimi i bazuar në objekte
Programimi i bazuar në objekte
(a
(ang. O
ng. Obje
bject
ct
Ori
Orien
ente
ted
d
Pro
Pro
gram
gram
min
ming)
g)
•
•Java është gjuhë programuese e bazuar në objekteJava është gjuhë programuese e bazuar në objekte •
•Siç nënkuptohet nga ky term objekti është entiteti bazë i Siç nënkuptohet nga ky term objekti është entiteti bazë i një Javanjë Java
programi programi •
•Java objektet mund të përdoren në mënyrë efektive që të reprezentojnëJava objektet mund të përdoren në mënyrë efektive që të reprezentojnë
objektet në botën reale objektet në botën reale •
•PP.sh. Një objekt i Java-së mu.sh. Një objekt i Java-së mund të reprezentojnd të reprezentoj një llogari bankarenjë llogari bankare •
•Çdo llogari bankare menaxhon me të dhënat që kanë të bëjnë me atëÇdo llogari bankare menaxhon me të dhënat që kanë të bëjnë me atë
llogari bankare si dhe me pjesën për procesimin e këtyre të dhënave llogari bankare si dhe me pjesën për procesimin e këtyre të dhënave
Objektet
Objektet
•
•Një objekt ka:Një objekt ka: •
• Gjendjen e tij (ang.Gjendjen e tij (ang.state state )) – – karakteristikat përshkruesekarakteristikat përshkruese •
• Sjelljet e tij (ang.Sjelljet e tij (ang. behaviour behaviour )) – – çka mund çka mund të bëjë apo lejon të bëjë apo lejon t’i bëhett’i bëhet •
•Gjendja Gjendja e llogarisë bankare përfshinë p.sh. Emrin, Bie llogarisë bankare përfshinë p.sh. Emrin, Bilancin, etjlancin, etj •
•Sjelljet Sjelljet që kanë të bëjnë me llqë kanë të bëjnë me llogarinë bankare janë, shfletimi i gjendjes,ogarinë bankare janë, shfletimi i gjendjes,
depozitimi i mjeteve si dhe tërheqja e mjeteve depozitimi i mjeteve si dhe tërheqja e mjeteve •
•Siç shihet nga lart disaSiç shihet nga lart disa sjellje sjellje të këtij objekti ndryshojnë gjendjen e tij,të këtij objekti ndryshojnë gjendjen e tij, p.sh. deponim
p.sh. deponimi apo i apo tërheqjtërheqja e a e mjeteve ndryshmjeteve ndryshojnë bilancin e ojnë bilancin e llogarisëllogarisë bankare
Klasat
Klasat
•
•Një objekt definohet nga njëNjë objekt definohet nga një klasëklasë që reprezeqë reprezentontonnnjënjëkonceptkoncept të veçantëtë veçantë •
•Klasa definon modelin e çdo Klasa definon modelin e çdo instance të objektitinstance të objektit •
•Shumë objekte mund të krijohen nga një klasëShumë objekte mund të krijohen nga një klasë •
•Klasa ka Klasa ka atributet/atributet/fushat që fushat që definojnëdefinojnëgjendjen gjendjen e një objektie një objekti •
•Klasa ka metodat që definojnëKlasa ka metodat që definojnë sjelljen sjelljen e një objektie një objekti •
•Klasa që ka Klasa që ka metodënmetodënmain()main() paraqet pikën fillestare të një programi nëparaqet pikën fillestare të një programi në
Java Java •
•Java programet kryesisht përbëhen nga më shumë klasë se vetëm klasa qëJava programet kryesisht përbëhen nga më shumë klasë se vetëm klasa që
ka metodën
ka metodënmain() main()
Objektet dhe klasat
Objektet dhe klasat
LlogariaBankare LlogariaBankare -- bilancbilanci: i: doubledouble
+ shfletoBilancin(): double + shfletoBilancin(): double +dep
+depono(doublono(doublee shuma): booleanshuma): boolean +terh
+terhjek(dojek(doubleuble shuma): booleanshuma): boolean
Klasa Klasa (koncepti)
(koncepti) Tri objekteTri objektetë klasëstë klasës
Llogari bankare e Agimit Llogari bankare e Agimit
Bilanci: 1500 Bilanci: 1500 € €
Llogari bankare e Artës Llogari bankare e Artës
Bilanci: 1755.65 Bilanci: 1755.65 € €
Llogari bankare e Rrapit Llogari bankare e Rrapit
Bilanci: 25785.05 Bilanci: 25785.05 € € Objekte të shumta të Objekte të shumta të së klasës LlogariaBankare së klasës LlogariaBankare
Trashëgimia (ang. Inheritance)
Trashëgimia (ang. Inheritance)
•
•Klasat mund të organizohen në hierarkiKlasat mund të organizohen në hierarki •
•Një klasë mund të derivohet/trashëgohet nga një tjetër duke përdorNjë klasë mund të derivohet/trashëgohet nga një tjetër duke përdor “ “inheritanceinheritance” ” LlogariaBankare LlogariaBankare LlogariaRrjedhese LlogariaRrjedhese LlogariaKursimit LlogariaKursimit