Self Test 2

January 18, 2009

1.

Which statement(s) are true? (Choose all that apply.)

  1. Has-a relationships always rely on inheritance.

  2. Has-a relationships always rely on instance variables.

  3. Has-a relationships always require at least two class types.

  4. Has-a relationships always rely on polymorphism.

  5. Has-a relationships are always tightly coupled.


2.

Given:

class Clidders {
  public final void flipper() { System.out.println("Clidder"); }
}
public class Clidlets extends Clidders {
  public void flipper() {
    System.out.println("Flip a Clidlet");
    super.flipper();
  }
  public static void main(String [] args) {
    new Clidlets().flipper();
  }
}

What is the result?

  1. Flip a Clidlet

  2. Flip a Clidder

  3. Flip a Clidder

    Flip a Clidlet

  4. Flip a Clidlet

    Flip a Clidder

  5. Compilation fails.


3.

Given:

public abstract interface Frobnicate { public void twiddle(String s) ; }

Which is a correct class? (Choose all that apply.)

  1. public abstract class Frob implements Frobnicate {

    public abstract void twiddle(String s){}

    }

  2. public abstract class Frob implements Frobnicate { }

  3. public class Frob extends Frobnicate {

    public void twiddle(Integer i) { }

    }

  4. public class Frob implements Frobnicate {

    public void twiddle(Integer i) { }

    }

  5. public class Frob implements Frobnicate {

    public void twiddle(String i) { }

    public void twiddle(Integer s) { }

    }


4.

Given:

class Top {
  public Top(String s) { System.out.print("B"); }
}
public class Bottom2 extends Top {
  public Bottom2(String s) { System.out.print("D"); }
  public static void main(String [] args) {
    new Bottom2("C");
    System.out.println(" ");
  }
}

What is the result?

  1. BD

  2. DB

  3. BDC

  4. DBC

  5. Compilation fails.

Image from book

5.

Select the two statements that best indicate a situation with low coupling. (Choose two.)

  1. The attributes of the class are all private.

  2. The class refers to a small number of other objects.

  3. The object contains only a small number of variables.

  4. The object is referred to using an anonymous variable, not directly.

  5. The reference variable is declared for an interface type, not a class. The interface provides a small number of methods.

  6. It is unlikely that changes made to one class will require any changes in another.


6.

Given:

class Clidder {
  private final void flipper() { System.out.println ("Clidder"); }
}

public class Clidlet extends Clidder {
  public final void flipper() { System.out.println("Clidlet");  }
  public static void main(String [] args) {
    new Clidlet().flipper();
  }
}

What is the result?

  1. Clidlet

  2. Clidder

  3. Clidder

    Clidlet

  4. Clidlet

    Clidder

  5. Compilation fails.


7.

Using the fragments below, complete the following code so it compiles. Note, you may not have to fill all of the slots.

Code:

class AgedP {
  __________   _________   _________   _________   _________
  public AgedP(int x) {
_   ________ _   ________ _  ________   _________   ___________
  }
}
public class Kinder extends AgedP {
  _________   _________   _________   _________   _________   _________
  public Kinder(int x) {
    _________   _________   _________   _________   ___________() ;
  }
}

Fragments: Use the following fragments zero or more times:

AgedP

super

this

(

)

{

}

;


8.

Given:

1. class Plant {
2.  String getName() { return "plant"; }
3.  Plant getType() { return this; }
4. }
5. class Flower extends Plant {
6.  // insert code here
7. }
8. class Tulip extends Flower {}

Which statement(s), inserted at line 6, will compile? (Choose all that apply.)

  1. Flower getType() { return this; }

  2. String getType() { return “this”; }

  3. Plant getType() { return this; }

  4. Tulip getType() { return new Tulip() ;}


9.

Given:

1. class Zing {
2.   protected Hmpf h;
3. }
4. class Woop extends Zing { }
5. class Hmpf { }

Which is true? (Choose all that apply.)

  1. Woop is-a Hmpf and has-a zing.

  2. zing is-a Woop and has-a Hmpf.

  3. Hmpf has-a Woop and Woop is-a Zing.

  4. Woop has-a Hmpf and Woop is-a zing.

  5. Zing has-a Hmpf and Zing is-a Woop.


10.

Given:

1. class Programmer {
2.   Programmer debug() { return this; }
3. }
4. class SCJP extends Programmer {
5.   // insert code here
6. }

Which, inserted at line 5, will compile? (Choose all that apply.)

  1. Programmer debug() { return this; }

  2. SCJP debug() { return this; }

  3. Object debug() { return this; }

  4. int debug() { return 1; }

  5. int debug(int x) { return 1; }

  6. Object debug (int x) { return this; }

Image from book

11.

Given:

class Uber {
  static int y = 2;
  Uber(int x) { this(); y = y * 2; }
  Uber() { y++; }
}
class Minor extends Uber {
  Minor() { super(y); y = y + 3; }
  public static void main(String [] args) {
    new Minor();
    System.out.println(y);
} }

What is the result?

  1. 6

  2. 7

  3. 8

  4. 9

  5. Compilation fails.

  6. An exception is thrown.


12.

Which statement(s) are true? (Choose all that apply.)

  1. Cohesion is the OO principle most closely associated with hiding implementation details.

  2. Cohesion is the OO principle most closely associated with making sure that classes know about other classes only through their APIs.

  3. Cohesion is the OO principle most closely associated with making sure that a class is designed with a single, well-focused purpose.

  4. Cohesion is the OO principle most closely associated with allowing a single object to be seen as having many types.

Image from book

13.

Given:

 1. class Dog { }
 2. class Beagle extends Dog { }
 3.
 4. class Kennel {
 5.   public static void main(String [] arfs) {
 6.     Beagle bl = new Beagle();
 7.     Dog dogl = new Dog();
 8.     Dog dog2 = bl;
 9.     // insert code here
10. } }

Which, inserted at line 9, will compile? (Choose all that apply.)

  1. Beagle b2 = (Beagle) dog1;

  2. Beagle b3 = (Beagle) dog2;

  3. Beagle b4 = dog2;

  4. None of the above statements will compile.


14.

Given the following,

 1. class X { void dol() { } }
 2. class Y extends X { void do2() { } }
 3.
 4. class Chrome {
 5.   public static void main(String [] args) {
 6.     X x1 = new X();
 7.     X x2 = new Y();
 8.     Y y1 = new Y();
 9.     // insert code here
10. } }

Which, inserted at line 9, will compile? (Choose all that apply.)

  1. x2.do2( );

  2. (Y) x2. do2( );

  3. ((Y)x2).do2();

  4. None of the above statements will compile.


2 Responses to “Self Test 2”

  1. waskita Says:

    puyeng … , secara saya udah lama gak pakai Java

  2. pbasari Says:

    sammma.. secara, saya dari pasundan bukan java..


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: