Korzystam z poradnika w sieci dotyczącego javy i mam kilka pytań
package testy2;
import java.util.Set;
public class Test1
{
private int zmienna1;
public void setZmienna1(int zmienna1)
{
this.zmienna1 = zmienna1;
}
public int getZmienna1()
{
return zmienna1;
}
public Test1()
{
this(1);
}
public Test1(int a)
{
zmienna1 = a;
}
public String toString()
{
return "Opis";
}
public int oblicz()
{
return zmienna1 = zmienna1 *2;
}
public int oblicz2()
{
int temp = zmienna1;
temp = temp * 10;
return temp;
}
public void oblicz3(int a)
{
int temp = getZmienna1();
temp = temp *2;
setZmienna1(temp);
}
public static void main(String[] args)
{
Test1 test1 = new Test1();
test1.setZmienna1(2);
System.out.println(test1.oblicz());
System.out.println(test1.getZmienna1());
System.out.println(test1.oblicz2());
test1.oblicz3(100);
System.out.println(test1.getZmienna1());
}
}
1. W metodzie "main" za pomocą ustawiam pole na wartość 2. Pierwsze wywołanie to metoda "oblicz". Tutaj do metody jest pobierana/przekazywana wartość z pola "zmienna1" która została ustawiona na 2?
2. Dla czego metoda "oblicz2" przechowuje wartość po wyliczeniach z poprzedniej metody ("oblicz") jeżeli wartość jest przekazywana przez "wartość" - obliczana w ciele metody i tyle (typ prosty)?
3. Czemu wynik wyświetlany po wykonaniu metody "oblicz3" daje 8, a nie spodziewane 200? Da się to zrobić w ten sposób (na prymitywach) czy trzeba to napisać obiektowo?
4. Kompletnie nie rozumiem założenia metod statycznych. Z definicji wiem tyle " dotyczy klasy a nie obiektu, tzn. dla wszystkich obiektów danej klasy pole statyczne ma tę samą wartość.". W praktyce przerabiałem to sobie na kursie Pana Zelenta z polem "ID" ale nie rozumiem jak się to ma do klas i jak to wykorzystać pisząc kod, jakie to ma konsekwencje... Proszę o pomoc.