2.5 KiB
Exercise 1
class Param1
{
public int y;
// default constructor here
public void method1(int x)
{
y = 2*x;
}
public int getY()
{
return y;
}
}
Param1 q1 = new Param1(); int y = 25; //Local Variable q1.y = 100; //Field Variable q1.method1(y); //method1(25) -> this.y = 50 System.out.println(y); System.out.println(q1.getY());
y = 25
this.y = 50
class Param2
{
public int y;
// default constructor here
public void method1(int x)
{
y = 2*x;
}
public int method2(int w)
{
return 3*w;
}
}
Param2 q2 = new Param2(); int y = 25; //Local Variable q2.y = 100; //Field Variable q2.method1(y); //method1(25) -> this.y = 50 System.out.println(y); System.out.println(q2.y); System.out.println(q2.method2(y));
y = 25
this.y = 50
method2(y) = 3*y = 3*25 = 75
class Param3
{
public int y;
// default constructor here
public void method1(int y)
{
y = y*3; // Local Variable
}
public int getY()
{
return y;
}
}
Param3 q3 = new Param3(); q3.y = 100; //Field Variable q3.method1(25); //Local y = 25x3 = 75 System.out.println(q3.getY());
y = 100
class Param4
{
private int w;
public Param4()
{
w = 5;
}
public void method1(int w)
{
this.w = w*3;
}
public int getW()
{
return w;
}
}
Param4 q4 = new Param4(); System.out.println(q4.getW()); q4.method1(25); System.out.println(q4.getW())
w = 5
this.w = 15
w = 15
Exercise 2
class Param5
{
private int a, b;
public Param5()
{
b = 2;
}
public void method1(int b)
{
a = this.b + 5;
System.out.println(a);
a = method2(b);
System.out.println(a);
System.out.println(this.b);
}
public int method2(int a)
{
b = 2 + a;
return this.a + b;
}
}
Param5 q5 = new Param5(); q5.method1(3);
Field Variable b = 2 Local Variable b = 3 Field a = 2 + 5 = 7 output 7 a = method2(3) Field b = 2 + 3 = 5 return 7 + 5 = 12 Field a = 12 output 12 output 5
public void arrayMethod(int[] stats) //B
{
for (int k = 0; k < stats.length; k+=2)
stats[k] = k; //C
}
int [] numbers = {5, 10, 15, 20}; //A arrayMethod(numbers);
Draw four state-of-memory diagrams to indicate the situation immediately after A has been executed, on starting execution of the method at B, immediately before returning from the method i.e. at C and after the method has been fully executed i.e. in the order in which the statements above are executed.
| numbers | -> | 5, 10, 15, 20 | | numbers | -> | stats | | stats | -> | 0, 10, 2, 20 | | numbers | -> | 0, 10, 2, 20 |