27 lut 2010

Zmienne final

  1. Raz zainicjalozowane nie mogą być zmieniane
  2. Jeśli chodzi o ptymitywy to chodzi o vartość
  3. Jeśli chodzi o Obiekt to nie wolno zmieniać referencji, zaś samo obiekt może być modyfikowany!.
  4. Nie ma final obiektów, tylko final referencje!
  5. Co do final klas- nie mogą być subklasowane
  6. Co do final metod - nie mogą być overriden!

public class ConcreteClass {

final int x;

public ConcreteClass() {
x=10;
//x=12; 2 raz nie wolno
}

@Test
public void finalTest() {

// x=12; tylko w KONSTRUKTORZE!
final int x_inside_method;
x_inside_method=9;
// x_inside_method++; nie wolno!! be be
}

Deklarowanie tablic


@Test
public void testTablicy(){
//all correct
int[] x;
int y[];
String[][] strinTab;
String [] stringTable[];
}

  1. Przy deklaracji nie używamy rozmiarów ( np int[5] tablica).

Zmienne lokalne

  1. Nazywane takrze automatyczne,
  2. Zmienne nie tylko są inicjalozowane ale także deklarowane wew. metody
  3. Są niszczone kiedy wyjdziemy z metody!
  4. Są na stosie
  5. Jeżeli zmienną bedzie obiekt to i tak bedzie on na stercie!
  6. Nie ma czegoś takiego jak obiekt lokalny , jest to tylko lokalna referencja do obiktu na stercie.
  7. trzebą ją zasinicjalozować!!!! ( przed użyciem)
  8. Może mieć taką samą nazwę jak zmienna instancji ( także static).

Porównanie modyfikatorów


  1. Zmienne lokalne : final
  2. Zmienne ( nie lokalne) : final, public, protected, private ,static, transient volatile
  3. Metody: final, public, protected, private ,static, abstract, synchronized, strictpf, native
  4. Klasa: hm... public, default, strictfp, abstract...( dodać)

Zmienne instancji

  1. Można wykorzystać 4 aces modifiers
  2. Może być final
  3. Może być transient
  4. Nie może być: synchronized,abstract, native, strictfp,
  5. Nie może być static, bo wtedy staje sie zmienną klasy

char- przytowanie


public void absMethod() {
char c =65000; // dodatnie 0-65535
short s = 6500;

c=s; //zonk : possible lost , chodzi o ujemne!
s=c; //jak wyżej

byte b=0;

s=b; //ok
c=b; //possible lost a presicion bo ujemne!!

}

Kwestia ustraty znaku!, Char ma tylko dodatnie!

Spis ważnych

  1. Dostępność memberów -SCJP book , page 39
  2. Gdy metoda w base throw Exception - SCJHP book,page 108
  3. hashcode a equals , SCJP book, page 554