JAVA - Modifikuesit e jo aksesit.
Teksti kėkues ėshtė gabim.
Teksti kėkues ėshtė gabim. Ju lutem pėrdorni vetėm shkronja dhe numra pėr tekstin kėrkues.
Kategoritė
Komenti nuk u shtua
Komenti juaj nuk u shtua. Ju lutem kontrolloni komentin dhe provojeni pėrsėri.
Komenti u shtua
Komenti juaj u shtua dhe do jetė i dukshėm automatikisht.

JAVA - Modifikuesit e jo aksesit.

JAVA siguron njė numėr tė madh tė modifikuesve jo tė aksesit pėr tė arritur shumė funksionalitete tė tjera.

Pjesė kodi nga gjuha e programimit JAVA.
Pjesė kodi nga gjuha e programimit JAVA.
Nga: Xhesjana Topalli
Publikimi: 24/07/2017 12:32

JAVA siguron njė numėr tė madh tė modifikuesve jo tė aksesit pėr tė arritur shumė funksionalitete tė tjera.

Modifikuesi static pėr tė krijuar metoda dhe variabla tė klasave.

Modifikuesi final pėr tė finalizuar implementimet e klasave, metodave dhe variablave.

Modifikuesi abstract pėr tė krijuar klasa abstrakte dhe metoda.

Modifikuesit synchronized dhe volatile, qė pėrdoren pėr kėrcėnimet.

Modifikuesi Static

Variablat statike

Fjala kyēe static pėrdoret pėr tė krijuar variablat qė do tė ekzistojnė tė pavarura nga ēdo instancė e krijuar pėr klasėn. Vetėm njė kopje e variablit static ekziston ndaj njė numri shumė tė madh tė instancave tė klasės.

Variablat statike njihen gjithashtu si variabla tė klasės. Variablat lokale nuk mund tė deklarohen statike.

Metodat Statike

Fjala kyēe static pėrdoret pėr tė krijuar metoda qė ekzistojnė tė pavarura nga ēdo instancė tė krijuar pėr klasėn.

Metodat statike nuk pėrdorin variablat e instancės tė njė objekti ēfarėdo tė klasės ku janė pėrcaktuar. Metodat statike marrin tė gjitha tė dhėnat nga parametrat dhe llogarisin diēka me kėto parametra, pa qenė nevoja tė ketė referencė tek variablat.

Variablat dhe metodat e klasės mund tė aksesohen duke pėrdorur emrin e klasės tė ndjekur nga njė pikė dhe emrin e variablit ose metodės.

Shembull

Modifikuesi i aksesit pėrdoret pėr tė krijuar metoda dhe varibla tė klasės si nė shembullin e mėposhtėm:


public class InstanceCounter {

private static int numInstances = 0;

protected static int getCount() {

return numInstances;

}

private static void addInstance() {

numInstances++;

}

InstanceCounter() {

InstanceCounter.addInstance();

}

public static void main(String[] arguments) {

System.out.println("Starting with " + InstanceCounter.getCount() + " instances");

for (int i = 0; i < 500; ++i) {

new InstanceCounter();

}

System.out.println("Created " + InstanceCounter.getCount() + " instances");

}

}

Ky kod do tė prodhojė rezultatin e mėposhtėm:

Rezultati


Started with 0 instances

Created 500 instances

Modifikuesi Final

Variablat Final

Njė variabėl final mund tė inicializohet vetėm njė herė nė mėnyrė eksplicide. Njė variabėl reference e deklaruar final nuk mund tė ricaktohet kurrė pėr tė referuar njė objekt tjetėr.

Gjithsesi, tė dhėnat nė njė objekt mund tė ndryshohen. Pra, gjendja e objektit mund tė ndryshohet, por referenca e tij jo.

Me variablat, modifikuesi final shpesh pėrdoret me fjalėn static pėr ta bėrė konstantėn njė variabėl klase.

Shembull


public class Test {

final int value = 10;

// Kodi i mėposhtėm ėshtė shembull i njė konstanteje deklaruese:

public static final int BOXWIDTH = 6;

static final String TITLE = "Manager";

public void changeValue() {

value = 12; // do tė japė njė gabim

}

}

Metodat Final

Metoda final nuk mund tė mbishkruhet nga ndonjė nėnklasė. Siē u pėrmend mė parė, modifikuesi final parandalon njė metodė nga modifikimi i njė nėnklase.

Qėllimi kryesor i bėrjes sė njė metode final ėshtė qė pėrmbajtja e metodės nuk duhet tė ndryshohet nga jashtė kėsaj klase.

Shembull

Ju deklaroni metodat duke pėrdorur modifikuesin final nė deklarimin e klasės si nė shembullin e mėposhtėm:


public class Test {

public final void changeName() {

// pjesa kryesore e metodės

}

}

Klasat final

Qėllimi kryesor i pėrdorimit tė njė klase tė deklaruar si final ėshtė pėr tė parandaluar njė klasė qė tė bėhet nėnklasė. Nėse njė klasė shėnohet si final atėherė asnjė klasė nuk mund tė trashėgojė tipare nga klasa final.

Shembull:


public final class Test {

// Pjesa kryesore e metodės

}

Modifikuesi Abstract

Klasa Abstract

Njė klasė abstract nuk mund tė ilustrohet. Nėse njė klasė ėshtė deklaruar abstract atėherė qėllimi i vetėm i kėsaj klase ėshtė zgjerimi.

Njė klasė nuk mund tė jetė njėkohėsisht abstract dhe final (sepse njė klasė final nuk mund tė zgjerohet). Nėse njė klasė pėrmban metoda abstrakte atėherė klasa duhet tė deklarohet abstract. Pėrveē tė tjerash, njė gabim nė kompilim do tė kapėrcehet.

Njė klasė abstrakte mund ti pėrmbajė tė dyja metodat abstract dhe metodat normale.

Shembull


abstract class Caravan {

private double cmimi;

private String modeli;

private String viti;

public abstract void ecShpejt(); // njė metodė abstract

public abstract void ndryshoNgjyren();

}

Metodat Abstract

Njė metodė abstract ėshtė njė metodė e deklaruar pa ndonjė implementim. Pjesa kryesore e metodės (implementimi) sigurohet nga nėnklasa. Metodat abstract nuk mund tė jenė kurrė final dhe strict.

Njė klasė qė zgjeron njė klasė abstract duhet tė implementojė tė gjitha metodat e abstrakte tė klasės superiore, nėse nėnklasa nuk ėshtė njė klasė abstract.

Nėse njė klasė pėrmban njė ose mė shumė metoda abstract, atėherė klasa duhet tė deklarohet abstract. Njė klasė abstract nuk ka nevojė tė pėrmbajė metoda abstract.

Metoda abstract pėrfundon me njė pikėpresje. Shembull: public abstract shembull();

Shembull


public abstract class SuperClass {

abstract void m(); // metoda abstract

}

class SubClass extends SuperClass {

// implementon metodėn abstract

void m() {

.........

}

}

Modifikuesi Synchronised

Fjala kyēe synchronised pėrdoret pėr tė treguar qė njė metodė mund tė aksesohen vetėm nga njė objekt nė tė njėjtėn kohė. Modifikuesi synchronised mund tė aplikohet nga njėri nga 4 modifikuesit e nivelit tė aksesit.

Shembull


public synchronized void showDetails() {

.......

}

Modifikuesi Tranient

Njė variabėl instance shėnohet transient pėr tė treguar JVM pėr tė kapėrcyer njė variabėl tė veēantė kur serializohet objekti qė e pėrmban.

Ky modifikues pėrfshihet nė deklarimin qė krijon variablin, duke predikuar klasėn ose tipin e tė dhėnės sė variablit.

Shembull


public transient int limit = 55; // nuk do tė vazhdojė

public int b; // do tė vazhdojė

Modifikuesi Volatile

Modifikuesi volatile pėrdoret pėr tė lėnė JVM tė kuptojė se njė objekt qė akseson njė variabėl duhet gjithmonė tė shkrihet me kopjen private tė variablit me kopjen master nė memorie.

Aksesimi i njė variabli volatile sinkronizon tė gjitha kopjet e cashuara tė variablit nė memorien kryesore. Volatile mund tė aplikohet vetėm nė variablat e instancės, tė cilat janė me tipin e objektit ose private. Njė referencė e objektit volatile mund tė jetė null.

Shembull


public class MyRunnable implements Runnable {

private volatile boolean active;

public void run() {

active = true;

while (active) { // linja 1

... // pjesė kodi

}

}

public void stop() {

active = false; // linja 2

}

}

Zakonisht, run() thėrritet nė njė objekt (atė qė ju filloni tė pėrdorni Runnable), dhe stop() thėrritet nga njė objekt tjetėr. Nėse nė linjėn 1, vlera e cashuar e active pėrdoret, cikli mund tė mos ndalojė kur ju e vendosni active si false nė linjėn 2. Ky ėshtė rasti ku mund tė pėrdorni volatile.

Reklamė

Komentet (1)

perfekt...
- paolo, tirane, 05-05-2019 10:09
220
3840
Vlerėso komentin

Kontrolloni emrin dhe provojeni pėrsėri.
Kontrolloni vendodhjen dhe provojeni pėrsėri.
Kontrolloni komentin dhe provojeni pėrsėri.
Fjalėkalimi nuk ėshtė i saktė. Shkruani fjalėkalimin siē shihet nė fotografi dhe provojeni pėrsėri.
Shtoni komentin tuaj




Ju keni edhe 1000 karaktere


Shkruani fjalėn qė shikoni nė fotografi
!-'CI

Sharje dhe gjuhė agresive nuk lejohen nė Perspekti.
Reklamė