Tuesday, 15 April 2014

java - how does void methods behaves when passing object reference or primitive types as a parameter -



java - how does void methods behaves when passing object reference or primitive types as a parameter -

this question has reply here:

is java “pass-by-reference” or “pass-by-value”? 58 answers

i have class has void methods.

my question is, how these methods executing. stringbuilderappend() void method when phone call method returning values been appended within method , m doing same check other 2 method (i.e, stringappend() , addnumbers() ) not returning anything.

public class voidmethodchecker { public static void main(string... a){ stringbuilder stringbuilder = new stringbuilder("first stringbuilder "); stringbuilderappend(stringbuilder); string string = "first string "; stringappend(string); int number = 0; addnumber(number); /* stringbuilderappend method prints "first stringbuilder sec stringbuilder" * why stringbuilder() returning appended value. (my stringbuilder() void method) * other 2 method not appending*/ system.out.println(stringbuilder); // prints "first stringbuilder sec stringbuilder" system.out.println(string); // prints "first string" system.out.println(number); // prints "0" } private static void stringbuilderappend(stringbuilder stringbuilder) { stringbuilder.append("second stringbuilder"); } private static void addnumber(int number){ number = 120; } private static void stringappend(string string){ string += "second string"; } }

thanks

stringbuilderappend: method not returning anything. passing object , modify state within methods body. maintain reference same object in calling method, see changes made on object. fundamental concept of object orientation need understand.

addnumber: passing primitive integer assigned parameter number. parameter nil more variable visible in methods body. if assign new value variable, do, caller doesn't see anthing of that. same happen in stringbuilderappend if assign new stringbuilder variable (stringbuilder = new stringbuilder()) before modifying it.

stringappend: same addnumber. string += "second string" same string = string + "second string" assigning new value variable.

java pass-by-value

No comments:

Post a Comment