Tylko jedna publiczna klasa w pliku!- komentarz może pojawić się na pozątku lub końcu każdej linii.
- Nazwa klasy publicznej musi być identyczna z nazwą pliku!
- Jeśli klasa jest częścią package to linia z package musi być pierwszą nie komentarzową linią!
- Linie z import muszą być pomiedzy package a deklaracją klay!
- import i package odnosi sie do całego pliku i może być tylko 1.
- Plik może zwierać więcej niepublicznych klas!
- Plik bez publicznej klasy nie musi pasować nazwą do czegokolwiek!
23 lut 2010
Deklaracja klasy -plik
JavaBeans
- Pola prywatne
- metody get i set są public
- public void setCosik(int x)
- public int getCosik();
- Dla boolean : getBool() albo isBool().
- Event: public void addMyListener(MyListener m) //takei same nazwy!
- Przedrostek add i remove tylko w połączeniu z Listener!!!
- nie ma delete!!!
Nazwy identyfikatorów
- Identyfikator musi zaczynać się od: $,_ , lub litery.
- identyfikator nie może zaczynać się od cyfry!
- Kolejne znaki mogą być: cyfrą,literą,$,_.
- Nie ma limitów na długość ident.
- Nie możesz używać słów kluczowych javy.
- foo i Foo to dwa różne identyfikatory!!
- 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
}
20 lut 2010
Tablica
//pomocnicza funkcja
private void testObjectTab(Object[] obTab){
for(Object ob: obTab)
prn(ob);
}
@Test
public void Tab3Init(){
int[]test = new int[5];
for(int x:test)
prn(x);
//wynik: 0,0,0,0,0
}
// @Test
public void InitTab2Test(){
testObjectTab(new Object[]{
new Integer(1),
new Float(1.1f),
new Double(1.1)}
);
//wynik: 1 , 1.1 ,1.1
}
// @Test
public void multiTab(){
int[][] mTab ={
{1,2,3},
{4,5,6}
};
for(int[] row:mTab)
for(int cell:row)
prn(cell);
//wynik: 1,2,3,4,5,6
assertEquals(mTab.length, 2); //pass!!!!!!!!!!!
}
// @Test
public void InitTest() {
int tab[];
int[] tab2;
int tab3[] = {1, 2};
int tab4[] = {1, 2, 3, 4, 5,}; //patrz przecinek! =>Ok
int tab4copy[] = tab4;
for (int x : tab4copy) {
x++; //nie zmienia nic w tablicy!
}
for (int x = 0; x < tab4copy.length; x++) {
tab4copy[x]++;
}
//sprawdzamy czy zmieniło się w 2 tablicach ( tab4copy i tab4)
for (int x : tab4) {
prn(x); //2,3,4,5,6
}
assertEquals(tab4, tab4copy); //pass
//test inicjalizacji
//!int tab5[3]; nie wolno bebe
int tab5[] = new int[0];
prn(tab5.length); //0
int tab6[] = new int[(char) 1];
int tab7[] = new int[(byte) 1];
//! int tab7[] = new int[(long)1]; zonk max może być Z
int tab9[] = new int[(int) 1.1];
int tab10[] = new int[(char) 1];
//pozyższe się udaje bo promowanie do inta
//ciekawostka
//! float f=1.1; bo 1.1 to double!
//tablioce obiektów
String[] s = {"ok", "", new String("ok")}; //ok
// String tabS[]={"ok",tabS[0]}; //variable might be not inicjalized!
Integer[] intTab = {1, 1, 3, new Integer(1)};
//int a Integer
//!int[] tabInt= new Integer[3]; zonk
//!Integer[] tabInteger= tab4; zonk
}
Subskrybuj:
Posty (Atom)