Java - Myśleć jak programista: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Linia 634:
 
==Zmienność obiektów==
Możesz zmienić zawartość obiektu poprzez przypisanie do jednej z jego zmiennych instancji. Na przykład, aby " przesunąć " prostokąt bez zmiany jego rozmiaru , można zmodyfikować wartości X i Y : <br />
 
:::<tt>box.x = box.x + 50 ; </tt><br />
:::<tt>box.y = box.y + 100 ; </tt><br />
 
Wynik jest pokazany na [http://www.greenteapress.com/thinkapjava/html/thinkjava009.png rysunku] <br/>
Możemy upakować ten kod w metodzie i uogólnić to bardziej, aby przesunąć prostokąt o dowolną odległość: <br/>
  public static void moveRect (pole prostokąta , int dx , int dy ) { </tt> <br/>
:::<tt>box.x = box.x + dx ;</tt> <br/>
:::<tt>box.y = box.y + dy ;</tt> <br/>
<tt>}</tt> <br/>
 
Zmienne <tt>dx</tt> oraz <tt>dy</tt> wskazują zmienne i określają jak daleko chcemy przesunąć prostokąt w każdym kierunku. Wywołanie tej metody nie powoduje zmiany prostokąta, który jest przekazywany jako argument.<br/>
:::<tt>   Prostokat box = new Prostokat( 0 , 0 , 100 , 200 ) ;</tt> <br/>
:::<tt>   moveRect (box, 50, 100) ;</tt> <br/>
:::<tt>   System.out.println (box) ;</tt> <br/>
wydruk spowoduje <tt> java.awt.Prostokat [ x = 50 , y = 100, width = 100, height = 200 ].</tt> <br/>
Modyfikowanie obiektów , przekazując je jako argumenty metod mogą być przydatne, ale może również sprawić, że debugowanie staje się trudniejsze, ponieważ nie zawsze wiadomo, która metoda wywołania zmodyfikuje(bądź nie) swoje argumenty. W dalszej części omówimy wady i zalety tego stylu programowania. <br/>
 
Java udostępnia metody , które działają na punkty i prostokąty . Możesz zapoznać się z dokumentacją na stronie <br/>
[http://download.oracle.com/javase/6/docs/api/java/awt/Point.html TUTAJ] oraz [http://download.oracle.com/javase/6/docs/api/%20Java%20/%20AWT%20/%20Rectangle.html TUTAJ]<br/>
 
Na przykład metoda <tt>translate</tt> ma taki sam skutek, jak <tt>moveRect</tt>, ale zamiast przekazywać Prostokąt jako argument, należy użyć notacji z użyciem kropki: <br/>
 
:::<tt>    box.translate (50, 100); </tt>
 
==Odnośniki do obiektów==
==Odnośnik null==