logo

CuriousTab

CuriousTab

Discussion


Home Java Programming Inner Classes See What Others Are Saying!
  • Question
  • Which constructs an anonymous inner class instance?


  • Options
  • A. Runnable r = new Runnable() { };
  • B. Runnable r = new Runnable(public void run() { });
  • C. Runnable r = new Runnable { public void run(){}};
  • D. System.out.println(new Runnable() {public void run() { }});

  • Correct Answer
  • System.out.println(new Runnable() {public void run() { }}); 

    Explanation
    D is correct. It defines an anonymous inner class instance, which also means it creates an instance of that new anonymous class at the same time. The anonymous class is an implementer of the Runnable interface, so it must override the run() method of Runnable.

    A is incorrect because it doesn't override the run() method, so it violates the rules of interface implementation.

    B and C use incorrect syntax.


    More questions

    • 1. Which three statements are true?
      1. f1 == f2
      2. f1 == f3
      3. f2 == f1[1]
      4. x == f1[0]
      5. f == f1[0]
      import java.awt.Button;
      class CompareReference 
      {
          public static void main(String [] args) 
          {
              float f = 42.0f;
              float [] f1 = new float[2];
              float [] f2 = new float[2];
              float [] f3 = f1;
              long x = 42;
              f1[0] = 42.0f;
          }
      }
      

    • Options
    • A. 1, 2 and 3
    • B. 2, 4 and 5
    • C. 3, 4 and 5
    • D. 1, 4 and 5
    • Discuss
    • 2. Which one create an anonymous inner class from within class Bar?
      class Boo 
      {
          Boo(String s) { }
          Boo() { }
      }
      class Bar extends Boo 
      {
          Bar() { }
          Bar(String s) {super(s);}
          void zoo() 
          {
          // insert code here
          }
      }
      

    • Options
    • A. Boo f = new Boo(24) { };
    • B. Boo f = new Bar() { };
    • C. Bar f = new Boo(String s) { };
    • D. Boo f = new Boo.Bar(String s) { };
    • Discuss
    • 3. Which of the following code fragments inserted, will allow to compile?
      public class Outer 
      { 
          public void someOuterMethod() 
          {
              //Line 5 
          } 
          public class Inner { } 
          
          public static void main(String[] argv) 
          {
              Outer ot = new Outer(); 
              //Line 10
          } 
      } 
      

    • Options
    • A. new Inner(); //At line 5
    • B. new Inner(); //At line 10
    • C. new ot.Inner(); //At line 10
    • D. new Outer.Inner(); //At line 10
    • Discuss
    • 4. What will be the output of the program?
      public class Test178 
      { 
          public static void main(String[] args) 
          {
              String s = "foo"; 
              Object o = (Object)s; 
              if (s.equals(o)) 
              { 
                  System.out.print("AAA"); 
              } 
              else 
              {
                  System.out.print("BBB"); 
              } 
              if (o.equals(s)) 
              {
                  System.out.print("CCC"); 
              } 
              else 
              {
                  System.out.print("DDD"); 
              } 
          } 
      }
      

    • Options
    • A. AAACCC
    • B. AAADDD
    • C. BBBCCC
    • D. BBBDDD
    • Discuss
    • 5. What will be the output of the program?
      int i = (int) Math.random();
      

    • Options
    • A. i = 0
    • B. i = 1
    • C. value of i is undetermined
    • D. Statement causes a compile error
    • Discuss
    • 6. What will be the output of the program?
      class Tree { } 
      class Pine extends Tree { } 
      class Oak extends Tree { } 
      public class Forest1 
      { 
          public static void main (String [] args)
          { 
              Tree tree = new Pine(); 
              if( tree instanceof Pine ) 
                  System.out.println ("Pine"); 
              else if( tree instanceof Tree ) 
                  System.out.println ("Tree"); 
              else if( tree instanceof Oak ) 
                  System.out.println ( "Oak" ); 
              else 
                  System.out.println ("Oops "); 
          } 
      }
      

    • Options
    • A. Pine
    • B. Tree
    • C. Forest
    • D. Oops
    • Discuss
    • 7. What will be the output of the program?
      public class StringRef 
      {
          public static void main(String [] args) 
          {
              String s1 = "abc";
              String s2 = "def";
              String s3 = s2;   /* Line 7 */
              s2 = "ghi";
              System.out.println(s1 + s2 + s3);
          }
      }
      

    • Options
    • A. abcdefghi
    • B. abcdefdef
    • C. abcghidef
    • D. abcghighi
    • Discuss
    • 8. What will be the output of the program?
      public class ObjComp 
      {
          public static void main(String [] args ) 
          {
              int result = 0;
              ObjComp oc = new ObjComp();
              Object o = oc;
      
              if (o == oc)  
                  result = 1;
              if (o != oc)  
                  result = result + 10;
              if (o.equals(oc) )  
                  result = result + 100;
              if (oc.equals(o) )  
                  result = result + 1000;
      
              System.out.println("result = " + result);
          }
      }
      

    • Options
    • A. 1
    • B. 10
    • C. 101
    • D. 1101
    • Discuss
    • 9. What will be the output of the program?
      String d = "bookkeeper";
      d.substring(1,7);
      d = "w" + d;
      d.append("woo");  /* Line 4 */
      System.out.println(d);
      

    • Options
    • A. wookkeewoo
    • B. wbookkeeper
    • C. wbookkeewoo
    • D. Compilation fails.
    • Discuss
    • 10. What will be the output of the program?
      interface Count 
      {
          short counter = 0;
          void countUp();
      }
      public class TestCount implements Count 
      {
          public static void main(String [] args) 
          {
              TestCount t = new TestCount();
              t.countUp();
          }
          public void countUp() 
          {
              for (int x = 6; x>counter; x--, ++counter) /* Line 14 */
              {
                  System.out.print(" " + counter);
              }
          }
      }
      

    • Options
    • A. 0 1 2
    • B. 1 2 3
    • C. 0 1 2 3
    • D. 1 2 3 4
    • E. Compilation fails
    • Discuss


    Comments

    There are no comments.

Enter a new Comment