Dne 3.3.2011 17:34, Tomas Pitner napsal(a):
Tuším, že to bude jistě něco s "ukazateli" (promiňte mi ten výraz, vím v Javě nejsou).
Jen pro upřesnění, ukazatele v Javě jsou, jsou to všechny objektové
proměnné. To co v Javě není je ukazatelová aritmetika. Tj. v Céčku jde
udělat
struct bla *p;
struct bla a[10];
p = &a[3]; //p ukazuje na a[3]
p = p + 1; //p ukazuje na a[4]
p++; //p ukazuje na a[5]
kdežto v Javě lze do ukazatele jedině přiřadit jiný ukazatel nebo null.
Při předávání parametrů do metod se předávají všechny parametry hodnotou,
primitivní i objektové, takže při použití
Bla bla = new Bla(1);
nejakaMetoda(bla);
System.out.println(bla);
...
public void nejakaMetoda(Bla par) {
par = new Bla(2);
return;
}
se vytiskne obsah instance inicializované s Bla(1), jelikož se
sice do parametru "par" předala kopie ukazatele na Bla(1) a pak byla v těle
metody přepsána hodnotou ukazatele na Bla(2), ale na původní proměnnou "bla"
to nemá vliv.
Makub
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Supercomputing Center Brno Martin Kuba
Institute of Computer Science email: [email protected]
Masaryk University http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775
--------------------------------------------------------------
smime.p7s
Description: S/MIME Cryptographic Signature
