This week's book giveaway is in the Design forum.
We're giving away four copies of Design for the Mind and have Victor S. Yocco on-line!
See this thread for details.
Win a copy of Design for the Mind this week in the Design forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

passing a reference as an argument to a method

 
Steven YaegerII
Ranch Hand
Posts: 182
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The Rules Roundup question asks, "When you pass a reference to an array, as an argument to a method call, you pass a copy of the original array?" The given answer is true. No problem.
The question's meaning suggests, to me, that the three println() methods below should output 1, 32, and 1 - if the code was a correct demonstration. The actual output is 1, 32, 32. What would be a correct code demonstration of the question?

Thanx
[This message has been edited by Steven YaegerII (edited May 26, 2001).]
 
Jane Griscti
Ranch Hand
Posts: 3141
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Steven,
I don't remember the exact wording of the question; but when you 'pass a reference to an array' you are actually passing a copy of the reference, not a copy of the array... which is why you are seeing an output of '1,32,32' in your example.
Every time you call a method in Java, the JVM creates parameter variables. If the argument is a primitive type, a copy of the original value is passed ie a copy of the original variable's value is passed. Any changes made in the method affect only the copy, not the original value.
If the argument is a reference type, a copy of the original reference is passed. Array's are handled as objects, not primitive types; therefore, the parameter variable's value equals the memory address of the original object ie the parameter reference points to the original object and any changes made in the method affect the same object.
Hope that helps.
------------------
Jane Griscti
Sun Certified Programmer for the Java� 2 Platform
 
Steven YaegerII
Ranch Hand
Posts: 182
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks a million, Jane. I copied all the RR questions and put them to paper & re-numbered them (1,2,...144), which is why I didn't list a question number. Your explanation makes perfect sense. I forgot that arrays are treated as objects. I'm going to go see if the question's wording has been fixed since I copied them. Thanks again.
I just checked, and the question is correct with your explanation. I must've worded it wrong.
[This message has been edited by Steven YaegerII (edited May 28, 2001).]
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic