Back Up Next

this, static in final

this

 
beseda this pomeni referenco na trenutni objekt;
class PrintAlien {
    void izpisi(Alien a) {
        System.err.println("alien je " + a.ime);
    }
}
class Alien {
    PrintAlien print;
    String ime;
    Alien(String a)  {
        ime=a;
        print=new PrintAlien();
    }
    void printPosition() {
        print.izpisi(this); // this je referenca na trenutni
                            // objekt
    }
}

class test {
    public static void main(String argv[ ]) {
        Alien a=new Alien("prvi");
        Alien b=new Alien("drugi");
        a.printPosition();
        b.printPosition();
    }

}

prav tako lahko this uporabimo, da konstruktorje kličemo med seboj
class Alien {
    String ime="";
    int posX, posY;
    Alien(int x, int y) {
        posX=x; posY=y;
    }
    Alien(String a, int x, int y) {
        this(x,y);      // kliče prvi konstruktor
        ime=a;
    }
}

static

 
besedo static uporabljamo za deklaracijo statičnih spremenljivk in metod
statična spremenljivka ima enako vrednost za vse realizacije objektov nekega razreda
statične metode lahko kličemo ne da bi objekt realizirali
class Alien {
    static int x;
}

class Monster {
    static void print() {
        System.out.println("monster");
    }
}

class test {
    public static void main(String argv[ ]) {
        Alien a,b;
                
        a=new Alien();
        b=new Alien();
        a.x=2;
        System.out.println(b.x); //ima enako vrednost!!
        Monster.print(); // kličemo, brez da bi naredili
                         // instanco objekta
    }
}

final

 
besedo final uporabljamo za deklaracijo konstant in funkcij, ki jih ne smemo spremeniti (npr. v izpeljanih razredih)
class Alien {
    final int i=10; // konstanta, ki je ne smemo spremeniti
        
    void move(final int x, final int y) { } // x-a in y-a ne
                                // smemo spreminjati znotraj funkcije
        
    final void print() { } // izpeljani razredi ne smejo na
                           // novo definirati funkcije print()
}

Back Up Next