Declaration And Access Control - Study Mode
[#51] Determine output: class A{
{
System.out.print("b1 ")
}
public A(){
System.out.print("b2 ")
}
}
class B extends A{
static{
System.out.print("r1 ")
}
public B(){
System.out.print("r2 ")
}
{
System.out.print("r3 ")
}
static{
System.out.print("r4 ")
}
}
public class Test extends B{
public static void main(String[] args){
System.out.print("pre ")
new Test()
System.out.println("post ")
}
}
Correct Answer
(C) r1 r4 pre b1 b2 r3 r2 post
Explanation
Solution: All static blocks execute first then blocks and constructor. Blocks and constructor executes (super class block then super class constructor, sub class block then sub class constructor). Sequence for static blocks is super class first then sub class. Sequence for blocks is super class first then sub class.
[#52] What will be the output for the below code? static public class Test{
public static void main(String[] args){
char c = 'a'
switch(c){
case 65 : System.out.println("one")
break
case 'a': System.out.println("two")
break
case 3 : System.out.println("three")
}
}
}
Correct Answer
(D) Compile error - Illegal modifier for the class Test
only public, abstract & final are permitted.
Explanation
Solution: Outer class can only declare public , abstract and final. Illegal modifier for the class Test
only public, abstract & final are permitted.
[#53] What will be the output after compiling and running following program code? public class Test{
static int a
public static void main(String[] args){
System.out.println("one")
call(1)
}
static void call(int a){
this.a=10
System.out.println("two "+a)
}
}
Correct Answer
(D) Compile time error.
Explanation
Solution: Static members are common for all objects, where as ‘this’ refer to a particular object. so we cant use ‘this’ operator in the static methods.
[#54] What will be the output after the following program is compiled and executed? public class Test{
public static void main(String args[]){
int x = 10
x = myMethod(x--)
System.out.print(x)
}
static int myMethod(final int x){
return x--
}
}
Correct Answer
(B) The program will lead to compilation error.
Explanation
Solution: While compiling the Test class, the compilation error occurs implying that the final parameter x cannot be assigned a value. Therefore the option B is correct and remaining options are incorrect.
[#55] What can directly access and change the value of the variable qusNo? package com.mypackage
public class Test{
private int qusNo = 100
}
Correct Answer
(A) Only the Test class.