25 lut 2010

Inkrementacja byte


byte x=7;
b++; //ok
b=b++;//ok
b=(b+10); // promocja b+10 na inta , trzeba cast
b=(byte)(b+10); // ok


Co się stanie po b++ ?

23 lut 2010

Deklaracja klasy -plik


  1. Tylko jedna publiczna klasa w pliku!
  2. komentarz może pojawić się na pozątku lub końcu każdej linii.
  3. Nazwa klasy publicznej musi być identyczna z nazwą pliku!
  4. Jeśli klasa jest częścią package to linia z package musi być pierwszą nie komentarzową linią!
  5. Linie z import muszą być pomiedzy package a deklaracją klay!
  6. import i package odnosi sie do całego pliku i może być tylko 1.
  7. Plik może zwierać więcej niepublicznych klas!
  8. Plik bez publicznej klasy nie musi pasować nazwą do czegokolwiek!

JavaBeans


  1. Pola prywatne
  2. metody get i set są public
  3. public void setCosik(int x)
  4. public int getCosik();
  5. Dla boolean : getBool() albo isBool().
  6. Event: public void addMyListener(MyListener m) //takei same nazwy!
  7. Przedrostek add i remove tylko w połączeniu z Listener!!!
  8. nie ma delete!!!

Nazwy identyfikatorów

  1. Identyfikator musi zaczynać się od: $,_ , lub litery.
  2. identyfikator nie może zaczynać się od cyfry!
  3. Kolejne znaki mogą być: cyfrą,literą,$,_.
  4. Nie ma limitów na długość ident.
  5. Nie możesz używać słów kluczowych javy.
  6. foo i Foo to dwa różne identyfikatory!!


  7. Wszystko tyczy się także nazw metod i klas




@Test
public void testIdentyfikatorow() {
//GOOD
int _=5;
int $=5;
int a=8;
int $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=2;
int _____________________________________=3;
int _1234=4;

//BAD!!

//!int a:=9;
//!int e#=9;
//!int .f=9;
//!int 7g;
//!int enum=5 //bo keyword

}

public void ___(){ } //correct
public void $(){} //correct
public void _$_(){} //corect

private class ${}; //correct
private class ________{}//correct

22 lut 2010

Reszta z dzielenia


@Test
public void testModulo() {

//znak wyniki jest równy znakowi liczby przed %!!
assertEquals(-5 % -2, -1);
assertEquals(-5 % 2, -1);
assertEquals( 5 % -2, 1);
assertEquals( 5 % 2, 1);

assertEquals(-9 % -5, -4);
assertEquals(-9 % 5, -4);
assertEquals( 9 % -5, 4);
assertEquals( 9 % 5, 4);

//pass all
}

Przesunięcia bitowe


@Test
public void PrzesTest(){


assertEquals(23>>33, 23>>1); //pass
assertEquals(23<<33, 23<<1); //pass
assertEquals(23>>>33, 23>>>1); //pass
//ujemne
assertEquals(-23>>33, -23>>1); //pass

assertEquals(-4<<1, -8); //pass

assertEquals(1>>1, 0); //pass
}

Dzielenie przez zero


@Test
public void DivByZero(){

//int i=3/0;
//prn(i); //runtime-error

float f=1.0f/0;
prn(f); //print Infinity

double d=1.0/0;
prn(d); //print Infinity

//ciekawostka 1.0 jest doublem!!

int licznik=1;
int mianownik=0;

// int wynik=licznik/mianownik; //runtime-error

//MOD
int wynik=licznik%1;
prn(wynik); //wynik =0

//!int wynik=licznik%0; runtime error!
prn(wynik); //wynik =0

float ff= 5%0.3f;
prn(ff); //0.199999

float fff= 5%0.0f;
prn(fff); //NaN

float fy=1.0f/0.0f;
prn(fy); //Infinity
}