
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()
}
