Forums Register Login

Marcus Green MO 1 #34

+Pie Number of slices to send: Send
Hi,
looks MG has changed some Q to thread Q in his Mock1.
ok the foll
Which of the following statements about this code are true?
public class Morecombe{
public static void main(String argv[]){
Morecombe m = new Morecombe();
m.go(new Turing(){});
}
public void go(Turing t){
t.start();
}
}
class Turing extends Thread{
public void run(){
for(int i =0; i < 2; i++){
System.out.println(i);
}
}
}
1) Compilation error due to malformed parameter to go method
2) Compilation error, class Turing has no start method
3) Compilation and output of 0 followed by 1
4) Compilation but runtime error
Answer is 3.
I did not understand how could you pass m.go( new turing(){});
I thought it would be a compile time error but giving an output of 0 1.
Can anybody throw some light on this.
Regards,
madhuri.
+Pie Number of slices to send: Send
Hi Madhuri,
You can always pass an anonymous class in place of a named one. The beauty of Java!
The statement:
new Turing() {}
is creating a new Turing object without overridding any methods. It is anonymous because it has not been assigned to anything. It gets assigned to the Turing t parameter when being passed to the go method. Since Turing extends Thread class it is valid to call it's start method.
Regards,
Manfred.
+Pie Number of slices to send: Send
Hi manfred,
Thank u for ur post. But I haven't seen such type of passing and still surprised how it works.
Bye,
Madhuri.
+Pie Number of slices to send: Send
It's an anonymous class, as Manfred has pointed out. This is the kind of thing that one can find on the exam, so be careful.
+Pie Number of slices to send: Send
Hi ceasy,
Thankyou verymuch.
No, tomorrow we rule the world! With this tiny ad:
a bit of art, as a gift, the permaculture playing cards
https://gardener-gift.com


reply
reply
This thread has been viewed 1029 times.
Similar Threads
Anonymous class as parameter
Annnymour class Q in Marcus exam
A anonymous class question
MG1 #34
Question 34 from greens Mock
More...

All times above are in ranch (not your local) time.
The current ranch time is
Mar 28, 2024 08:10:50.