Diferenca kryesore – statike kundrejt finales në Java
Çdo gjuhë programimi ka një sintaksë specifike. Programuesi duhet të ndjekë këto sintaksa kur shkruan programe. Fjalët kyçe të gjuhëve të programimit kanë kuptime specifike sipas detyrave. Ato ofrohen nga gjuha e programimit dhe nuk mund të përdoren për variabla të përcaktuara nga përdoruesi, metoda, klasa, etj. Static dhe final janë dy fjalë kyçe në Java. Ky artikull diskuton ndryshimin midis statik dhe përfundimtar në Java. Dallimi kryesor midis static dhe final në Java është se static përdoret për të përcaktuar anëtarin e klasës që mund të përdoret në mënyrë të pavarur nga çdo objekt i klasës ndërsa finali përdoret për të deklaruar një ndryshore konstante ose një metodë që nuk mund të anashkalohet ose një klasë që nuk mund të trashëgohet.
Çfarë është statike në Java?
Një klasë përbëhet nga anëtarët e të dhënave (atributet) dhe metodat. Për të thirrur metodat, duhet të ketë një objekt të asaj klase specifike. Kur një metodë deklarohet si statike, nuk është e nevojshme të krijohet një objekt për të thirrur atë metodë. Metoda mund të thirret duke përdorur emrin e klasës. Referojuni programit të mëposhtëm.
Figura 01: Program Java me variabla statike dhe Metoda statike
Sipas programit të mësipërm, klasa A përmban variablin e numrit dhe metodën e shfaqjes. Të dy janë anëtarë statikë. Prandaj, nuk është e nevojshme të krijohet një objekt për të hyrë në variablin e numrit dhe metodën e shfaqjes. Programuesi mund të shkruajë drejtpërdrejt emrin e klasës për të printuar numrin dhe për të thirrur ekranin e metodës. Pra, nuk ka nevojë të instantohet një objekt. Nëse ndryshorja e numrit dhe metoda e shfaqjes janë jostatike, atëherë duhet të ketë një objekt të tipit A.
Figura 02: Përdorimi i bllokut statik
Programi i mësipërm përmban bllokun statik dhe metodën kryesore. Blloku statik thirret kur klasa është e ngarkuar. Prandaj, deklarata në bllokun statik ekzekutohet para deklaratës në bllokun kryesor. Nëse ka shumë blloqe statike, ato do të ekzekutohen në sekuencë.
Çfarë është përfundimtare në Java?
Në program, mund të ketë variabla të llojeve të ndryshme. Nëse ka një variabël si int x=1; më vonë në program, ajo vlerë e ndryshueshme mund të ndryshohet në ndonjë vlerë tjetër. Një variabël që deklarohet si përfundimtar dhe inicializohet me një vlerë nuk mund të ndryshohet më vonë në program.
Figura 03: Programi me variabël përfundimtare dhe trashëgimi
Sipas programit të mësipërm, x është një variabël përfundimtar. I caktohet një vlerë 5. Nuk mund të ndryshohet ndonjë vlerë tjetër sepse deklarohet si përfundimtare. Java mbështet programimin e orientuar nga objekti (OOP). Një shtyllë e OOP është një polimorfizëm. Një lloj polimorfizmi është mbizotërues. Klasa A ka metodën e shfaqjes. Klasa B zgjeron klasën A dhe ka metodën e vet të shfaqjes. Kur krijoni një objekt të tipit B dhe thërrisni metodën e ekranit, do të shtypet "B" si rezultat. Metoda e shfaqjes së klasës A anashkalohet nga metoda e shfaqjes së klasës B.
Nëse programuesi çfarë duhet të shmangë anashkalimin e një metode, atëherë ai mund të përdorë fjalën kyçe përfundimtare për atë metodë. Nëse metoda e shfaqjes në klasën A është përfundimtare, metoda e shfaqjes në B do të japë një gabim sepse ajo metodë nuk mund të anashkalohet.
Figura 04: fjala kyçe përfundimtare në metodën
Një tjetër shtyllë e OOP është trashëgimia. Ndihmon për të ripërdorur kodin tashmë ekzistues. Klasa e re mund të shtrihet nga klasa ekzistuese dhe të përdorë anëtarët e të dhënave dhe metodat e klasës ekzistuese. Nëse kërkohet të ndalojë së trashëguari një klasë, programuesi mund të përdorë fjalën kyçe "përfundimtare". Referojuni programit të mëposhtëm.
Figura 05: fjala kyçe përfundimtare në klasën
Sipas programit të mësipërm, klasa A shpallet përfundimtare. Kur klasa B shtrihet A, jep një gabim sepse klasa A deklarohet si përfundimtare. Nuk mund të trashëgohet nga klasa të tjera.
Cila është ngjashmëria midis statikes dhe fundit në Java?
Të dyja statike dhe përfundimtare janë fjalë kyçe në Java
Cili është ndryshimi midis statik dhe përfundimtar në Java?
static vs final në Java |
|
Fjala kyçe statike tregon që një variabël ose metodë anëtare mund të aksesohet pa kërkuar një shembull të klasës së cilës i përket. | Fjala kyçe përfundimtare tregon një entitet që mund të caktohet vetëm një herë. |
Variabla | |
Ndryshoret statike mund të rifillohen. | Ndryshoret përfundimtare nuk mund të rifillohen. |
Metodat | |
Mund të thirret me metoda të tjera statike dhe të qaset vetëm te anëtarët statikë të klasës. | Metodat përfundimtare nuk mund të anashkalohen. |
Klasa | |
Objekti i klasës statike nuk mund të krijohet. Ai përmban vetëm anëtarë statikë. | Klasa përfundimtare nuk mund të trashëgohet nga klasa të tjera. |
Blloko | |
Fjala kyçe statike mund të përdoret në një bllok. | Fjala kyçe përfundimtare nuk përdoret me një bllok. |
Përmbledhje – statike kundrejt finales në Java
Ky artikull diskutoi dy fjalë kyçe në Java si statike dhe përfundimtare. Dallimi midis static dhe final në Java është se static përdoret për të përcaktuar anëtarin e klasës që mund të përdoret në mënyrë të pavarur nga çdo objekt i klasës ndërsa final përdoret për të deklaruar një ndryshore konstante ose një metodë që nuk mund të anashkalohet ose një klasë që nuk mund të të jetë i trashëguar.