iEntry 10th Anniversary Java Faqs RSS Feed

SCJP Declarations and access control

By: admin - Tuesday, September 9th, 2008 at 10:14 am

QUESTION1

    What is the result of attempting to compile and run this
         interface A{
          void aMethod();
          }
          public class Test implements A{
          void aMethod(){
          System.out.println("hello");
          }
          public static void main(String[] args){
          Test t = new Test();
          t.aMethod();
          }
         } 

1. The code will not compile.
2. Runtime exception.
3. Compiles and runs printing out "hello".

ANS : 1

     All interface methods are implicitly public.
     Will fail compilation becuse the access modifier
     for aMethod() is being made more restrictive.

QUESTION2

     Is this code legal ?
         public class Test {
          void aMethod(){
          static int b = 10;
          System.out.println(b);
          }
         }

1. Yes
2. No

ANS : 2
   Local variables cannot be declared static.

QUESTION3
    Is this legal
          public class Test {
            static { int a = 5; }
            public static void main(String[] args){
            System.out.println(a);
            }
          }

1.Yes
2.No

ANS : 2
  Correct ans : 2
  A variable declared  in a static initialiser is not accessible outside its
  enclosing block.

QUESTION4

     Select the true statements.

1. Transient methods cannot be overridden
2. A final class may not be subclassed.
3. A private method can never be overridden to become public
4. An abstract class may contain final methods
5. A private method cannot be overridden and made public
6. Final methods may not be overridden.

ANS : 2,4,5,6

QUESTION5

      Which of the following are valid for declaring and intialising
      a char variable?

1. char c    = 'a';
2. char c    = '\'';
3. char c    = '\n';
4. char c    = "a";
5. char c    = \u0061;
6  char c    = 97; 

ANS : 1

   Corr answer : 1,2,3 and  6

QUESTION6

     Which of the following are valid for declaring and initialising
     a boolean variable?

1. boolean b = True;
2. boolean b = 0;
3. boolean b = 1 < 2;
4. boolean b = true?false:true;
5. boolean b = true;

ANS : 3,4,5

QUESTION7

       Select the valid declarations.

1. int i = 16.0;
2. byte b = 16.0;
3. float f = 16.0;
4. double d = 16.0;
5. char \u0063 = '\u0063';

ANS : 4,5
     16.0 is a double type literal hence it becomes a widening
     assignment for a byte, int  or float.

QUESTION8

    What is the result of attempting to compile and run this code
     public class Test{
       int i;
       Test(){
       i++;
       }
       public static void main(String[] args){
       Test t = new Test();
       System.out.println("value = " t.i);
       }
     }

1. The code will compile and run  printing out value = 1
2. The code will compile and run  printing out value = 0
3. The code will fail to compile becuse i has not been initialised
4. Run time error

ANS : 1
   Numeric instance variables are always
   automatically initialised to its default value.
   So you can use them without explicitly initialising them.

QUESTION9

    Whhat is the result of attempting to compile and run the following
      public class Test{
         int arr[] = new int[8];
         public static void main(String[] args){
          Test t = new Test();
         System.out.println(t.arr[7]);
          }
      }

1. Compiler error
2. Runtime exception
3. Compiles and runs printing out 0

ANS : 3

   Numeric instance variables are always
   automatically initialised to its default value.
   In the case of arrays each element of the array is
   initialised to its defaut value.

QUESTION10

  What is the result of trying to compile and run this
          public class Test{
              public static void main(String[] args){
          int a;
                 Test t = new Test();
                 for(int j=0; j < 2 ; j++){
                     for(int i=0; i <4 ; i++){
                      a = j;
                      }
                 System.out.println(i);
                 }
               }
          }

1. Compiles without error and runs printing out 1 twice.
2. Compiles without error and runs printing out 0 followed by 1 .
3. Compiles without error and runs printing out 0 twice.
4. Runtime error
5. Does not compile

ANS : 5

   The variable i is not accessible outside the enclosing block of the
   inner loop.

Stumble It!
 Digg!

Leave a Reply