Michiel de Roo:
>Rene Pijlman:
>> Michiel de Roo:
>>>Niet expliciet, maar een object gedraagt zich in Java eerder als een
>>>pointer dan als een reference.
Ik zou niet weten waarom. Een verwijzing naar een object heet in Java een
reference, en zo gedraagt het zich ook. Vrije pointers zijn er niet in
Java.
>Ik ben toch niet enige die dit denkt:
>http://javadude.com/articles/passbyvalue.htm
>
>en dan vooral:
>To sum up: Java has pointers, and the value of the pointer is passed in.
>There's no way to actually pass an object itself as a parameter. You can
>only pass a pointer to an object.
Dat wordt dus meestal een reference genoemd, in plaats van een pointer. De
verwarring, is dat in Java een reference by value wordt gepassed, in
plaats van een object by reference.
Hij heeft het goed begrepen: "A correct statement would be Object
references are passed by value".
Maar hier gaat hij de fout in: "The use of the word 'reference' in Java
was an incredibly poor choice (in my not-so-humble opinion...) Java has
pointers, plain and simple." Je kunt namelijk niet zeggen dat een defintie
fout is, omdat hij strijdig is met je eigen opvattingen. Redeneringen en
conclusies kunnen fout zijn, opvattingen kunnen fout worden gevonden, maar
definities zijn gewoon; goed noch fout.
"However, it makes no difference how pointers are implemented under the
covers." Dat is waar, maar "You program with them exactly the same way in
Java as you would in C or C++" is apekool. Wat er in C allemaal met
pointers gebeurt is met geen pen te beschrijven. Gelukkig doet Java dat
een stuk netter.
Ik zeg: Java heeft geen pointers, maar references. Argument passing is
altijd by value. In plaats van een object, wordt een reference by value
gepassed.
--
René Pijlman
Wat wil jij leren? http://www.leren.nl

Likes:

Quote