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 "dotyczyklasy 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.