Java static method parameters
Posted
by Blitzkr1eg
on Stack Overflow
See other posts from Stack Overflow
or by Blitzkr1eg
Published on 2010-04-28T15:58:31Z
Indexed on
2010/04/28
16:03 UTC
Read the original article
Hit count: 230
Why does the following code return 100 100 1 1 1
and not 100 1 1 1 1
?
public class Hotel {
private int roomNr;
public Hotel(int roomNr) {
this.roomNr = roomNr;
}
public int getRoomNr() {
return this.roomNr;
}
static Hotel doStuff(Hotel hotel) {
hotel = new Hotel(1);
return hotel;
}
public static void main(String args[]) {
Hotel h1 = new Hotel(100);
System.out.print(h1.getRoomNr() + " ");
Hotel h2 = doStuff(h1);
System.out.print(h1.getRoomNr() + " ");
System.out.print(h2.getRoomNr() + " ");
h1 = doStuff(h2);
System.out.print(h1.getRoomNr() + " ");
System.out.print(h2.getRoomNr() + " ");
}
}
Why does it appear to pass Hotel by-value to doStuff() ?
© Stack Overflow or respective owner