The pages of this web site are not formatted to conserve paper, but my new book (ISBN: 0-9745862-0-X) is formatted to save paper, save your printer cartridge, save a loose-leaf binder, and save money. If you prefer to work my exams from printed pages, then give your printer a rest and buy my new book.
Today, you can find my book at amazon.com.
If you have any questions or comments concerning my mock exams or my book, then please send an e-mail to me at scjpexam2000@yahoo.com.
Which of the following statements are true?
| a. | A constructor can invoke another constructor of the same class using the alternate constructor invocation, "this(argumentListopt);". |
| b. | A constructor can invoke itself using the alternate constructor invocation, "this(argumentListopt);". |
| c. | The alternate constructor invocation, "this(argumentListopt);", can legally appear anywhere in the constructor body. |
| d. | A constructor can invoke the constructor of the direct superclass using the superclass constructor invocation, "super(argumentListopt);". |
| e. | The number of constructor invocations that may appear in any constructor body can equal but not exceed the number of alternate constructors declared in the same class. |
| f. | A constructor is not permitted to throw an exception. |
Suppose that the superclass constructor invocation, "super(argumentListopt);", appears explicitly in a subclass constructor. If a compile-time error is to be avoided then the arguments for the superclass constructor invocation, "super(argumentListopt);", can not refer to which of the following?
| a. | Static variables declared in this class or any superclass. |
| b. | Instance variables declared in this class or any superclass. |
| c. | Static methods declared in this class or any superclass. |
| d. | Instance methods declared in this class or any superclass. |
| e. | The keyword this. |
| f. | The keyword super. |
class A {void m1(String s1) {}}
class B extends A {
void m1(String s1) {} // 1
void m1(boolean b) {} // 2
void m1(byte b) throws Exception {} // 3
String m1(short s) {return new String();} //4
private void m1(char c) {} // 5
protected void m1(int i) {} // 6
}
What is the result of attempting to compile the program?
| a. | Compile-time error at line 1 |
| b. | Compile-time error at line 2 |
| c. | Compile-time error at line 3 |
| d. | Compile-time error at line 4 |
| e. | Compile-time error at line 5 |
| f. | Compile-time error at line 6 |
| g. | None of the above |
class A {void m1() {System.out.print("A.m1");}}
class B extends A {
void m1() {System.out.print("B.m1");}
static void m1(String s) {System.out.print(s+",");}
}
class C {
public static void main (String[] args) {B.m1("main"); new B().m1();}
}
What is the result of attempting to compile and run the program?
| a. | Prints: main,B.m1 |
| b. | Compile-time error |
| c. | Run-time error |
| d. | None of the above |
Which of the following are true statements?
| a. | The relationship between a class and its superclass is an example of a "has-a" relationship. |
| b. | The relationship between a class and its superclass is an example of an "is-a" relationship. |
| c. | The relationship between a class and an object referenced by a field within the class is an example of a "has-a" relationship. |
| d. | The relationship between a class and an object referenced by a field within the class is an example of an "is-a" relationship. |
class A {String s1 = "A.s1"; String s2 = "A.s2";}
class B extends A {
String s1 = "B.s1";
public static void main(String args[]) {
B x = new B(); A y = (A)x;
System.out.println(x.s1+" "+x.s2+" "+y.s1+" "+y.s2);
}}
What is the result of attempting to compile and run the program?
| a. | Prints: B.s1 A.s2 B.s1 A.s2 |
| b. | Prints: B.s1 A.s2 A.s1 A.s2 |
| c. | Prints: A.s1 A.s2 B.s1 A.s2 |
| d. | Prints: A.s1 A.s2 A.s1 A.s2 |
| e. | Run-time error |
| f. | Compile-time error |
| g. | None of the above |
class C {
void printS1() {System.out.print("C.printS1 ");}
static void printS2() {System.out.print("C.printS2 ");}
}
class D extends C {
void printS1(){System.out.print("D.printS1 ");}
void printS2() {System.out.print("D.printS2 ");}
public static void main (String args[]) {
C c = new D(); c.printS1(); c.printS2();
}}
What is the result of attempting to compile and run the program?
| a. | Prints: C.printS1 C.printS2 |
| b. | Prints: C.printS1 D.printS2 |
| c. | Prints: D.printS1 C.printS2 |
| d. | Prints: D.printS1 D.printS2 |
| e. | Run-time error |
| f. | Compile-time error |
| g. | None of the above |
class E {
void printS1(){System.out.print("E.printS1 ");}
static void printS2() {System.out.print("E.printS2");}
}
class F extends E {
void printS1(){System.out.print("F.printS1 ");}
static void printS2() {System.out.print("F.printS2");}
public static void main (String args[]) {
E x = new F(); x.printS1(); x.printS2();
}}
What is the result of attempting to compile and run the program?
| a. | Prints: E.printS1 E.printS2 |
| b. | Prints: E.printS1 F.printS2 |
| c. | Prints: F.printS1 E.printS2 |
| d. | Prints: F.printS1 F.printS2 |
| e. | Run-time error |
| f. | Compile-time error |
| g. | None of the above |
class P {
static void printS1(){System.out.print("P.printS1 ");}
void printS2() {System.out.print("P.printS2 ");}
void printS1S2(){printS1();printS2();}
}
class Q extends P {
static void printS1(){System.out.print("Q.printS1 ");}
void printS2(){System.out.print("Q.printS2 ");}
public static void main(String[] args) {
new Q().printS1S2();
}}
What is the result of attempting to compile and run the program?
| a. | Prints: P.printS1 P.printS2 |
| b. | Prints: P.printS1 Q.printS2 |
| c. | Prints: Q.printS1 P.printS2 |
| d. | Prints: Q.printS1 Q.printS2 |
| e. | Run-time error |
| f. | Compile-time error |
| g. | None of the above |
class R {
private void printS1(){System.out.print("R.printS1 ");}
protected void printS2() {System.out.print("R.printS2 ");}
protected void printS1S2(){printS1();printS2();}
}
class S extends R {
private void printS1(){System.out.print("S.printS1 ");}
protected void printS2(){System.out.print("S.printS2 ");}
public static void main(String[] args) {
new S().printS1S2();
}}
What is the result of attempting to compile and run the program?
| a. | Prints: R.printS1 R.printS2 |
| b. | Prints: R.printS1 S.printS2 |
| c. | Prints: S.printS1 R.printS2 |
| d. | Prints: S.printS1 S.printS2 |
| e. | Run-time error |
| f. | Compile-time error |
| g. | None of the above |
class T {
private int i1, i2;
void printI1I2() {System.out.print("T, i1="+i1+", i2="+i2);}
T(int i1, int i2) {this.i1=i1; this.i2=i2;}
}
class U extends T {
private int i1, i2;
void printI1I2() {System.out.print("U, i1="+i1+", i2="+i2);}
U(int i1, int i2) {this.i1=i1; this.i2=i2;}
public static void main(String[] args) {
T t = new U(1,2); t.printI1I2();
}}
What is the result of attempting to compile and run the program?
| a. | Prints: U, i1=1, i2=2 |
| b. | Prints: T, i1=1, i2=2 |
| c. | Prints: U, i1=null, i2=null |
| d. | Prints: T, i1=null, i2=null |
| e. | Run-time error |
| f. | Compile-time error |
| g. | None of the above |
interface I {String s1 = "I";}
class A implements I {String s1 = "A";}
class B extends A {String s1 = "B";}
class C extends B {
String s1 = "C";
void printIt() {
System.out.print(((A)this).s1 + ((B)this).s1 +
((C)this).s1 + ((I)this).s1);
}
public static void main (String[] args) {new C().printIt();}
}
What is the result of attempting to compile and run the program?
| a. | Prints: ABCI |
| b. | Run-time error |
| c. | Compile-time error |
| d. | None of the above |
abstract class D {String s1 = "D"; String getS1() {return s1;}}
class E extends D {String s1 = "E"; String getS1() {return s1;}}
class F {
public static void main (String[] s) {
D x = new E(); System.out.print(x.s1 + x.getS1());
}}
What is the result of attempting to compile and run the program?
| a. | Prints: DD |
| b. | Prints: DE |
| c. | Prints: ED |
| d. | Prints: EE |
| e. | Run-time error |
| f. | Compile-time error |
| g. | None of the above |
class A {static void m() {System.out.print("A");}}
class B extends A {static void m() {System.out.print("B");}}
class C extends B {static void m() {System.out.print("C");}}
class D {
public static void main(String[] args) {
C c = new C(); c.m(); B b = c; b.m(); A a = b; a.m();
}}
What is the result of attempting to compile and run the program?
| a. | Prints: AAA |
| b. | Prints: ABC |
| c. | Prints: CBA |
| d. | Prints: CCC |
| e. | Compile-time error |
| f. | Run-time error |
| g. | None of the above |
class A {String s1 = "A";}
class B extends A {String s1 = "B";}
class C extends B {String s1 = "C";}
class D {
static void m1(A x) {System.out.print(x.s1);}
static void m1(B x) {System.out.print(x.s1);}
static void m1(C x) {System.out.print(x.s1);}
public static void main(String[] args) {
A a; B b; C c; a = b = c = new C(); m1(a); m1(b); m1(c);
}}
What is the result of attempting to compile and run the program?
| a. | Prints: AAA |
| b. | Prints: ABC |
| c. | Prints: CBA |
| d. | Prints: CCC |
| e. | Compile-time error |
| f. | Run-time error |
| g. | None of the above |
class Leg{}
class Fur{}
abstract class Pet {
public abstract void eat();
public abstract void sleep();
}
class Dog extends Pet {
Leg leftFront = new Leg(), rightFront = new Leg();
Leg leftRear = new Leg(), rightRear = new Leg();
Fur fur = new Fur();
public Fur shed() {return fur;}
public void eat() {}
public void sleep() {}
}
class Cat extends Dog {
public void ignoreOwner() {}
public void climbTree() {}
}
Which of the following statements is not a true statement?
| a. | A Cat object inherits an instance of Fur and four instances of Leg from the Dog superclass. |
| b. | A Cat object is able to sleep and eat. |
| c. | A Cat object is able to climb a tree. |
| d. | The relationship between Dog and Pet is an example of an appropriate use of inheritance. |
| e. | The relationship between Cat and Dog is an example of an appropriate use of inheritance. |
| f. | None of the above. |
class A {
A() {System.out.print("CA ");}
static {System.out.print("SA ");}
}
class B extends A {
B() {System.out.print("CB ");}
static {System.out.print("SB ");}
public static void main (String[] args) {B b = new B();}
}
What is the result of attempting to compile and run the above program?
| a. | Prints: SA CA SB CB |
| b. | Prints: SA SB CA CB |
| c. | Prints: SB SA CA CB |
| d. | Prints: SB CB SA CA |
| e. | Runtime Exception |
| f. | Compiler Error |
| g. | None of the above |
class A {String s1="A";}
class B extends A {String s1="B";}
class C extends B {String s1="C";}
class D extends C {
String s1="D";
void m1() {
System.out.print(this.s1 + ","); // 1
System.out.print(((C)this).s1 + ","); // 2
System.out.print(((B)this).s1 + ","); // 3
System.out.print(((A)this).s1); // 4
}
public static void main (String[] args) {
new D().m1(); // 5
}}
What is the result of attempting to compile and run the program?
| a. | Prints: D,D,D,D |
| b. | Prints: D,C,B,A |
| c. | Compile-time error at 1. |
| d. | Compile-time error at 2. |
| e. | Compile-time error at 3. |
| f. | Compile-time error at 4. |
| g. | Compile-time error at 5. |
| h. | Run-time error |
| i. | None of the above |
class SuperA {String s1="SuperA";}
class SuperB {String s1="SuperB";}
class A extends SuperA {
String s1="A";
class B extends SuperB { // 1
String s1="B";
void m1() {
System.out.print(this.s1 + ","); // 2
System.out.print(super.s1 + ","); // 3
System.out.print(A.this.s1 + ","); // 4
System.out.print(A.super.s1); // 5
}
}
public static void main (String[] args) {
new A().new B().m1(); // 6
}}
What is the result of attempting to compile and run the program?
| a. | Prints: B,SuperB,B,SuperB |
| b. | Prints: B,SuperB,A,SuperA |
| c. | Compile-time error at 1. |
| d. | Compile-time error at 2. |
| e. | Compile-time error at 3. |
| f. | Compile-time error at 4. |
| g. | Compile-time error at 5. |
| h. | Compile-time error at 6. |
| i. | Run-time error |
| j. | None of the above |
class A {void m1() {System.out.print("A");}}
class B extends A {void m1(){System.out.print("B");}}
class C extends B {void m1() {System.out.print("C");}}
class D extends C {
void m1() {System.out.print("D");}
void m2() {
m1();
((C)this).m1(); // 1
((B)this).m1(); // 2
((A)this).m1(); // 3
}
public static void main (String[] args) {
new D().m2(); // 4
}}
What is the result of attempting to compile and run the program?
| a. | Prints: DCBA |
| b. | Prints: DDDD |
| c. | Compile-time error at 1. |
| d. | Compile-time error at 2. |
| e. | Compile-time error at 3. |
| f. | Compile-time error at 4. |
| g. | Run-time error |
| h. | None of the above |
class A {public void m1() {System.out.print("A1");}}
class B extends A {
public void m1() {System.out.print("B1");}
public void m2() {System.out.print("B2");}
}
class C {
public static void main(String[] args) {
A a1 = new B();
a1.m1(); // 1
a1.m2(); // 2
((B)a1).m1(); // 3
((B)a1).m2(); // 4
}}
What is the result of attempting to compile and run the program?
| a. | Prints: A1B2B1B2 |
| b. | Prints: B1B2B1B2 |
| c. | Compile-time error at 1 |
| d. | Compile-time error at 2 |
| e. | Compile-time error at 3 |
| f. | Compile-time error at 4 |
| g. | Run-time error |
| h. | None of the above |