1.
-
Given:
-
11. public interface Status {
-
12. /* insert code here */ int MY_VALUE = 10;
-
13. }
-
Which three are valid on line 12? (Choose three.)
Correct Answer(s)
A. Final
B. Static
D. Public
Explanation
The three valid options for line 12 are "final", "static", and "public". "final" indicates that the value of MY_VALUE cannot be changed once it is assigned. "static" means that the variable belongs to the class itself, rather than to any particular instance of the class. "public" allows the variable to be accessed from other classes.
2.
-
Given:
-
10. public class Bar {
-
11.static void foo(int...x) {
-
12. // insert code here
-
13. }
-
14. }
-
Which two code fragments, inserted independently at line 12, will allow
-
the class to compile? (Choose two.)
Correct Answer(s)
B. for(int z : x) System.out.println(z);
D. For( int i=0; i< x.length; i++ ) System.out.println(x[i]);
Explanation
The two code fragments, "for(int z : x) System.out.println(z);" and "for( int i=0; i< x.length; i++ ) System.out.println(x[i]);", will allow the class to compile. The first fragment uses the enhanced for loop to iterate over the elements in the array "x" and print each element. The second fragment uses a traditional for loop to iterate over the elements in the array "x" using an index variable "i" and print each element using the index.
3.
-
Given:
-
11. public class Test {
-
12. public static void main(String [] args) {
-
13. int x =5;
-
14. boolean b1 = true;
-
15. boolean b2 = false;
-
16.
-
17.if((x==4) && !b2)
-
18. System.out.print(”l “);
-
19. System.out.print(”2 “);
-
20. if ((b2 = true) && b1)
-
21. System.out.print(”3 “);
-
22. }
-
23. }
-
What is the result?
Correct Answer
D. 2 3
Explanation
The code snippet first checks if `x` is equal to 4 and `b2` is false. Since `x` is not equal to 4 and `b2` is false, the condition evaluates to false and the code inside the if statement on line 17 is not executed. Then, the code assigns `true` to `b2` and checks if `b2` is true and `b1` is true. Since both `b2` and `b1` are true, the condition evaluates to true and the code inside the if statement on line 20 is executed, which prints "3". Therefore, the result is "2 3".
4.
-
4. Given:
-
31. // some code here
-
32. try {
-
33. // some code here
-
34. } catch (SomeException se) {
-
35. // some code here
-
36. } finally {
-
37. // some code here
-
38. }
-
Under which three circumstances will the code on line 37 be executed?
-
(Choose three.)
Correct Answer(s)
B. The code on line 33 throws an exception.
C. The code on line 35 throws an exception.
E. The code on line 33 executes successfully.
Explanation
The code on line 37 will be executed under the following three circumstances:
1. The code on line 33 throws an exception.
2. The code on line 35 throws an exception.
3. The code on line 33 executes successfully.
5.
-
Given:
-
10. interface Foo {}
-
11. class Alpha implements Foo { }
-
12. class Beta extends Alpha {}
-
13. class Delta extends Beta {
-
14. public static void main( String[] args) {
-
15. Beta x = new Beta();
-
16. // insert code here
-
17. }
-
18. }
-
Which code, inserted at line 16, will cause a
-
java.lang.ClassCastException?
Correct Answer
C. Foo f= (Delta)x;
Explanation
The code "Foo f= (Delta)x;" will cause a java.lang.ClassCastException. This is because the variable "x" is of type Beta, and the code is trying to cast it to type Delta, which is a subclass of Beta. Since Delta is not a superclass of Beta, the cast will result in a ClassCastException.
6.
-
Given:
-
• d is a valid, non-null Date object
-
• df is a valid, non-null DateFormat object set to the
-
current locale
-
What outputs the current locales country name and the appropriate
-
version of d’s date?
Correct Answer
B. Locale loc = Locale.getDefault();
System.out.println(loc.getDisplayCountry()
+ “ “ + df.format(d));
Explanation
The correct answer is `Locale loc = Locale.getDefault(); System.out.println(loc.getDisplayCountry() + " " + df.format(d));`. This code retrieves the default locale and uses it to get the display country name using `loc.getDisplayCountry()`. It then formats the date `d` using the DateFormat object `df.format(d)`. Finally, it prints the country name and the formatted date.
7.
-
Given:
-
20. public class CreditCard {
-
21.
-
22. private String cardlD;
-
23. private Integer limit;
-
24. public String ownerName;
-
25.
-
26. public void setCardlnformation(String cardlD,
-
27. String ownerName,
-
28. Integer limit) {
-
29. this.cardlD = cardlD;
-
30. this.ownerName = ownerName;
-
31. this.limit = limit;
-
32. }
-
33. }
-
Which is true?
Correct Answer
C. The ownerName variable breaks encapsulation.
Explanation
The ownerName variable breaks encapsulation because it is declared as public, allowing direct access to the variable from outside the class. In encapsulation, variables should be declared as private to restrict direct access and provide controlled access through getter and setter methods.
8.
-
Assume that country is set for each class.
-
Given:
-
10. public class Money {
-
11. private String country, name;
-
12. public getCountry() { return country; }
-
13.}
-
and:
-
24. class Yen extends Money {
-
25. public String getCountry() { return super.country; }
-
26. }
-
27.
-
28. class Euro extends Money {
-
29. public String getCountry(String timeZone) {
-
30. return super.getCountry();
-
31. }
-
32. }
-
Which two are correct? (Choose two.)
Correct Answer(s)
B. Euro returns correct values.
E. Compilation fails because of an error at line 25.
Explanation
The explanation for the correct answer is that Euro returns correct values because it overrides the getCountry() method from the superclass Money and returns the value of super.getCountry(). However, compilation fails because of an error at line 25 because the access modifier of the country variable in the superclass Money is private, so it cannot be accessed directly in the subclass Yen.
9.
Which Man class properly represents the relationship “Man has a best
friend who is a Dog”?
Correct Answer
D. Class Man { private Dog bestFriend; }
Explanation
The correct answer is "class Man { private Dog bestFriend; }". This answer represents the relationship "Man has a best friend who is a Dog" by declaring a private variable named "bestFriend" of type Dog within the Man class. This allows an instance of the Man class to have a reference to a Dog object, representing the association between a Man and their best friend who is a Dog.
10.
-
Given:
-
11. public class Person {
-
12. private name;
-
13. public Person(String name) {
-
14. this.name = name;
-
15. }
-
16. public int hashCode() {
-
17. return 420;
-
18. }
-
19. }
-
Which is true?
Correct Answer
A. The time to find the value from HashMap with a Person key depends
on the size of the map.
Explanation
The time to find the value from a HashMap with a Person key depends on the size of the map because the HashMap uses the hashCode() method of the Person class to calculate the index where the value is stored. If the map is larger, there may be more collisions and it may take longer to find the value.
11.
-
Given:
-
23. Object [] myObjects = {
-
24. new integer(12),
-
25. new String(”foo”),
-
26. new integer(5),
-
27. new Boolean(true)
-
28. };
-
29. Arrays.sort(myObjects);
-
30. for( int i=0; i
-
31. System.out.print(myObjects[i].toString());
-
32. System.out.print(” “);
-
33. }
-
What is the result?
-
Correct Answer
C. A ClassCastException occurs in line 29.
Explanation
The code is attempting to sort an array of objects using the Arrays.sort() method. However, this method requires that the objects in the array implement the Comparable interface in order to determine their natural order. Since the array contains objects of different types (Integer, String, and Boolean), which do not implement Comparable, a ClassCastException occurs when trying to compare them during the sorting process. Therefore, the correct answer is that a ClassCastException occurs in line 29.
12.
-
12. Given:
-
13. public class Pass {
-
14. public static void main(String [1 args) {
-
15. int x 5;
-
16. Pass p = new Pass();
-
17. p.doStuff(x);
-
18. System.out.print(” main x = “+ x);
-
19. }
-
20.
-
21. void doStuff(int x) {
-
22. System.out.print(” doStuff x = “+ x++);
-
23. }
-
24. }
-
What is the result?
-
Correct Answer
D. DoStuffx = 5 main x = 5
Explanation
The code will compile and run without any errors. The main method creates a variable "x" and assigns it a value of 5. Then, an instance of the Pass class is created and the doStuff method is called with the variable "x" as an argument. Inside the doStuff method, the value of "x" is printed and then incremented by 1. The main method then prints the value of "x" again. Since the increment operation in the doStuff method does not affect the value of "x" in the main method, the final output will be "doStuff x = 5 main x = 5".
13.
-
Given:
-
10. package com.sun.scjp;
-
11. public class Geodetics {
-
12. public static final double DIAMETER = 12756.32; // kilometers
-
13. }
-
Which two correctly access the DIAMETER member of the Geodetics
-
class? (Choose two.)
Correct Answer(s)
A. import com.sun.scjp.Geodetics;
public class TerraCarta {
public double halfway()
{ return Geodetics.DIAMETER/2.0; } }
C. import static com.sun.scjp.Geodetics. *;
public class TerraCarta {
public double halfway() { return DIAMETER/2.0; } }
Explanation
The correct answers are the first and fourth options.
In the first option, the Geodetics class is imported using the import statement, allowing direct access to the DIAMETER member using the class name.
In the fourth option, the Geodetics class is accessed using the fully qualified name, com.sun.scjp.Geodetics, allowing direct access to the DIAMETER member.
The second and third options are incorrect because they either do not import the Geodetics class or do not access the DIAMETER member correctly.
14.
-
Given:
-
10. class Nav{
-
11. public enum Direction { NORTH, SOUTH, EAST, WEST }
-
12. }
-
13. public class Sprite{
-
14. // insert code here
-
15. }
-
Which code, inserted at line 14, allows the Sprite class to compile?
Correct Answer
D. Nav.Direction d = Nav.Direction.NORTH;
Explanation
The correct answer is "Nav.Direction d = Nav.Direction.NORTH;". This is the correct code to insert at line 14 because it specifies the fully qualified name of the Direction enum, which is Nav.Direction.NORTH. This ensures that the compiler can correctly identify the enum and allows the Sprite class to compile without any errors.
15.
-
Given:
-
10. interface Foo { int bar(); }
-
11. public class Sprite {
-
12. public int fubar( Foo foo) { return foo.bar(); }
-
13. public void testFoo() {
-
14. fubar(
-
15. // insert code here
-
16.);
-
17. }
-
18. }
-
Which code, inserted at line 15, allows the class Sprite to compile?
Correct Answer
C. NewFoo() { public int bar(){return 1; } }
Explanation
The correct answer is "newFoo() { public int bar(){return 1; } }". This code creates a new anonymous class that implements the Foo interface and defines the bar() method to return 1. This allows the class Sprite to compile because it can now pass an instance of this anonymous class to the fubar() method.
16.
-
Click the Exhibit button.
-
10. interface Foo {
-
11. int bar();
-
12. }
-
13.
-
14. public class Beta {
-
15.
-
16. class A implements Foo {
-
17. public int bar() { return 1; }
-
18. }
-
19.
-
20. public int fubar( Foo foo) { return foo.bar(); }
-
21.
-
22. public void testFoo() {
-
23.
-
24. class A implements Foo {
-
25. public int bar() { return 2; }
-
26. }
-
27.
-
28. System.out.println( fubar( new A()));
-
29. }
-
30.
-
31. public static void main( String[] argv) {
-
32. new Beta().testFoo();
-
33. }
-
34. }
-
Which three statements are true? (Choose three.)
Correct Answer(s)
B. The code compiles and the output is 2.
E. If lines 16, 17 and 18 were removed, the code would compile and
the output would be 2.
F. If lines 24, 25 and 26 were removed, the code would compile and
the output would be 1.
Explanation
The code compiles and the output is 2 because the testFoo() method creates a new instance of the inner class A and calls the fubar() method with that instance. Since the inner class A implements the Foo interface and overrides the bar() method to return 2, the output will be 2. If lines 16, 17, and 18 were removed, the code would still compile and the output would be 2 because the inner class A would still be used. If lines 24, 25, and 26 were removed, the code would compile and the output would be 1 because the outer class A would be used, which returns 1 in the bar() method.
17.
-
Given:
-
1. package sun.scjp;
-
2. public enum Color { RED, GREEN, BLUE }
-
1. package sun.beta;
-
2. // insert code here
-
3. public class Beta {
-
4. Color g = GREEN;
-
5. public static void main( String[] argv)
-
6. { System.out.println( GREEN); }
-
7. }
-
The class Beta and the enum Color are in different packages.
-
Which two code fragments, inserted individually at line 2 of the Beta
-
declaration, will allow this code to compile? (Choose two.)
Correct Answer(s)
C. Import sun.scjp.Color; import static sun.scjp.Color.*;
E. Import sun.scjp.Color; import static sun.scjp.Color.GREEN
18.
-
Given:
-
1. public interface A {
-
2. String DEFAULT_GREETING = “Hello World”;
-
3. public void method1();
-
4. }
-
A programmer wants to create an interface called B that has A as its
-
parent. Which interface declaration is correct?
Correct Answer
A. public interface B extends A { }
Explanation
The correct answer is "public interface B extends A { }". In Java, interfaces are implemented using the "implements" keyword, but when one interface extends another interface, the "extends" keyword is used. Therefore, to create an interface B that has A as its parent, the correct syntax is "public interface B extends A { }".
19.
-
Given:
-
1. class TestA {
-
2. public void start() { System.out.println(”TestA”); }
-
3. }
-
4. public class TestB extends TestA {
-
5. public void start() { System.out.println(”TestB”); }
-
6. public static void main(String[] args) {
-
7. ((TestA)new TestB()).start();
-
8. }
-
9. }
-
What is the result?
Correct Answer
B. TestB
Explanation
The code creates a new instance of TestB and then casts it to type TestA. The start() method is then called on this instance. Since the start() method is overridden in TestB, the version of the method in TestB is called. Therefore, the output will be "TestB".
20.
-
Given:
-
1. interface TestA { String toString(); }
-
2. public class Test {
-
3. public static void main(String[] args) {
-
4. System.out.println(new TestA() {
-
5. public String toString() { return “test”; }
-
6. });
-
7. }
-
8. }
-
What is the result?
Correct Answer
A. Test
Explanation
The code creates an anonymous inner class that implements the TestA interface and overrides the toString() method to return "test". The code then creates an instance of this anonymous inner class and prints it using System.out.println(). Therefore, the output will be "test".
21.
-
Question 21
-
Given:
-
11. public abstract class Shape {
-
12. int x;
-
13. int y;
-
14. public abstract void draw();
-
15. public void setAnchor(int x, int y) {
-
16. this.x = x;
-
17. this.y = y;
-
18. }
-
19. }
-
and a class Circle that extends and fully implements the Shape class.
-
Which is correct?
Correct Answer
C. Shape s = new Circle();
s.setAnchor(10,10);
s.draw();
22.
-
Given:
-
10. abstract public class Employee {
-
11. protected abstract double getSalesAmount();
-
12. public double getCommision() {
-
13. return getSalesAmount() * 0.15;
-
14. }
-
15. }
-
16. class Sales extends Employee {
-
17. // insert method here
-
18. }
-
Which two methods, inserted independently at line 17, correctly
-
complete the Sales class? (Choose two.)
-
.
Correct Answer(s)
B. Public double getSalesAmount() { return 1230.45; }
D. Protected double getSalesAmount() { return 1230.45; }
Explanation
The Sales class is extending the Employee class, which is an abstract class. In order to complete the Sales class, it needs to implement the abstract method getSalesAmount(). The correct methods to insert at line 17 are public double getSalesAmount() { return 1230.45; } and protected double getSalesAmount() { return 1230.45; }. These methods provide the implementation for the abstract method in the Employee class, allowing the Sales class to be instantiated and used.
23.
-
Given:
-
10. interface Data { public void load(); }
-
11. abstract class Info { public abstract void load(); }
-
Which class correctly uses the Data interface and Info class?
-
A
Correct Answer
A. public class Employee extends Info implements Data {
public void load() { /*do something*/ }
}
Explanation
The correct answer is option A because it correctly implements the Data interface and extends the Info class. The load() method is implemented in the Employee class, satisfying the requirements of both the interface and the abstract class.
24.
-
Given:
-
11. public abstract class Shape {
-
12. private int x;
-
13. private int y;
-
14. public abstract void draw();
-
15. public void setAnchor(int x, int y) {
-
16. this.x = x;
-
17. this.y = y;
-
18. }
-
19. }
-
Which two classes use the Shape class correctly? (Choose two.)
Correct Answer(s)
B. Public abstract class Circle extends Shape {
private int radius;
}
E. public class Circle extends Shape {
private int radius;
public void draw() {/* code here */}
}
Explanation
The first class, "public abstract class Circle extends Shape", correctly uses the Shape class by extending it and implementing the abstract method "draw()". The second class, "public class Circle extends Shape", also correctly uses the Shape class by extending it and providing an implementation for the abstract method "draw()".
25.
Which two classes correctly implement both the java.lang.Runnable
and the java.lang.Clonable interfaces? (Choose two.)
Correct Answer(s)
C. . public class Session
implements Runnable, Clonable {
public void run() { / do something */ }
public Object clone() { /* make a copy */ }
}
D. . public abstract class Session
implements Runnable, Clonable {
public void run() { / do something */ }
public Object clone() { /*make a copy */ }
}
Explanation
The correct answers are:
1. public class Session implements Runnable, Clonable {
public void run() { / do something */ }
public Object clone() { /* make a copy */ }
}
2. public abstract class Session implements Runnable, Clonable {
public void run() { / do something */ }
public Object clone() { /*make a copy */ }
These two classes correctly implement both the java.lang.Runnable and the java.lang.Clonable interfaces because they provide the required methods for both interfaces: "run()" for the Runnable interface and "clone()" for the Clonable interface.