In: Computer Science
Before call obj.a 15 obj.b is 20
Before call obj.a 30 obj.b is 10
CallValueTest.java
package com.Assignment3.Q1;
class Test {
void calc(int a, int b) {
a *= 2;
b /= 2;
System.out.println(" in calc a = "
+ a + " b = " + b);
}
}
public class CallByValueTest {
public static void main (String args[]) {
Test ob = new Test();
int a =15, b = 20;
System.out.println ("Before calc :a
= " + a + " b " + b);
ob.calc (a, b );
System.out.println(" After calc: a
= " + a + " b " + b);
}
}
//Java code
package com.Assignment3.Q1;
/**
* Since in call by value, We are passing primitive type(int, char..) Which supports pass by value.
* To convert the it into call by reference, We need to wrap them into reference type (Object).
*/
class Test {
//attributes
int a,b;
void calc() {
a *= 2;
b /= 2;
System.out.println(" in calc a = " + a + " b = " + b);
}
}
public class CallByRefTest {
public static void main (String args[]) {
Test ob = new Test();
ob.a=15;
ob.b =20;
System.out.println ("Before calc :a = " + ob.a + " b " + ob.b);
ob.calc ( );
System.out.println(" After calc: a = " + ob.a + " b " + ob.b);
}
}
//output

//If you need any help regarding this solution ......... please leave a comment ...... thanks