Back Up Next

Enkapsulacija

 
enkapsulacija pomeni, da skupaj damo tako podatke, kot kodo, ki nad temi podatki operira in tako dobimo zaključeno celoto - objekt. Del enkapsulacije je tudi skrivanje notranje izvedbe objekta. 
Navzven naj bi objekt kazal le nek vmesnik (interface - skupek metod), ki naj služi za delo z objektom.
enkapsulacija prinese lažje vzdrževanje ter ponovno uporabljivost kode.

 

Dostopnost oz. vidljivost podatkov


Java ima nekaj razerviranih besed, s katerimi lahko določamo vidljivost posameznih spremenljivk in metod objekta:




public pomeni, da imajo do spremenljivke/metode dostop vsi razredi. Če nek razred označimo z public, pomeni da imajo do njega dostop tudi razredi, ki niso napisani v izvorni datoteki. Tak razred moramo definirati v izvorni datoteki z istim imenom, kot je ime razreda.
protected pomeni, da imajo do spremenljivke/metode dostop le metode v samem razredu, ter vseh dedovanih razredih;
private pomeni, da imajo do spremenljivke/metode dostop le metode v samem razredu.
če ne specificiramo dostopa, imajo do spremenljivke/metode dostop vsi razredi v istem paketu.
 

class Enemy 
{
   private int posX=0,posY=0;    // privatne spremenljivke

   void move(int x, int y)   { 
        posX += x;
        posY += y;
   }

   public void setPosition(int x, int y)
    posX=x; posY=y;
   }

   public String getStringPos() {   // vsi lahko klicejo getString
        return "(" + posX + ","+ posY + ")";
    }
}

class Game
{
    public static void main(String argv[])   {
        Enemy x = new Enemy(); 

        x.posX=3; x.posY=10; // napaka!!!! posX in posY sta privatni 

x.setPosition(3,10); 
x.move(3,1); 

        System.out.println(x.getStringPos());

    }
}

Back Up Next