1. Question: What is the widest valid returnType for methodA in line 3? public class ReturnIt { returnType methodA(byte x, double y) /* Line 3 */ { return (long)x / y * 2; } }

    A
    int

    B
    byte

    C
    long

    D
    double

    Note: However A, B and C are all wrong. Each of these would result in a narrowing conversion. Whereas we want a widening conversion, therefore the only correct answer is D. Don't be put off by the long cast, this applies only to the variable x and not the rest of the expression. It is the variable y (of type double) that forces the widening conversion to double. Java's widening conversions are: - From a byte to a short, an int, a long, a float, or a double. - From a short, an int, a long, a float, or a double. - From a char to an int, a long, a float, or a double. - From an int to a long, a float, or a double. - From a long to a float, or a double. - From a float to a double.
    1. Report
  2. Question: class A { protected int method1(int a, int b) { return 0; } } Which is valid in a class that extends class A?

    A
    public int method1(int a, int b) {return 0; }

    B
    private int method1(int a, int b) { return 0; }

    C
    public short method1(int a, int b) { return 0; }

    D
    static protected int method1(int a, int b) { return 0; }

    Note: Option A is correct - because the class that extends A is just simply overriding method1. Option B is wrong - because it can't override as there are less access privileges in the subclass method1. Option C is wrong - because to override it, the return type needs to be an integer. The different return type means that the method is not overriding but the same argument list means that the method is not overloading. Conflict - compile time error. Option D is wrong - because you can't override a method and make it a class method i.e. using static.
    1. Report
  3. Question: Which one creates an instance of an array?

    A
    int[ ] ia = new int[15];

    B
    float fa = new float[20];

    C
    char[ ] ca = "Some String";

    D
    int ia[ ] [ ] = { 4, 5, 6 }, { 1,2,3 };

    Note: Option A is correct. It uses correct array declaration and correct array construction. Option B is incorrect. It generates a compiler error: incompatible types because the array variable declaration is not correct. The array construction expects a reference type, but it is supplied with a primitive type in the declaration. Option C is incorrect. It generates a compiler error: incompatible types because a string literal is not assignable to a character type variable. Option D is wrong, it generates a compiler error <identifier> expected. The compiler thinks that you are trying to create two arrays because there are two array initialisers to the right of the equals, whereas your intention was to create a 3 x 3 two-dimensional array.
    1. Report
  4. Question: Which two of the following are legal declarations for nonnested classes and interfaces? 1. final abstract class Test {} 2. public static interface Test {} 3. final public class Test {} 4. protected abstract class Test {} 5. protected interface Test {} 6. abstract public class Test {}

    A
    1 and 4

    B
    2 and 5

    C
    3 and 6

    D
    4 and 6

    Note: (3), (6). Both are legal class declarations. (1) is wrong because a class cannot be abstract and final—there would be no way to use such a class. (2) is wrong because interfaces and classes cannot be marked as static. (4) and (5) are wrong because classes and interfaces cannot be marked as protected.
    1. Report
  5. Question: Which of the following class level (nonlocal) variable declarations will not compile?

    A
    protected int a;

    B
    transient int b = 3;

    C
    private synchronized int e;

    D
    volatile int d;

    Note: Option C will not compile; the synchronized modifier applies only to methods. Option A and B will compile because protected and transient are legal variable modifiers. Option D will compile because volatile is a proper variable modifier.
    1. Report
  6. Question: Which two cause a compiler error? 1. float[ ] f = new float(3); 2. float f2[ ] = new float[ ]; 3. float[ ]f1 = new float[3]; 4. float f3[ ] = new float[3]; 5. float f5[ ] = {1.0f, 2.0f, 2.0f};

    A
    2, 4

    B
    3, 5

    C
    4, 5

    D
    1, 2

    Note: (1) causes two compiler errors ( '[' expected and illegal start of expression) because the wrong type of bracket is used, ( ) instead of [ ]. The following is the correct syntax: float[ ] f = new float[3]; (2) causes a compiler error ( '{' expected ) because the array constructor does not specify the number of elements in the array. The following is the correct syntax: float f2[ ] = new float[3]; (3), (4), and (5) compile without error.
    1. Report
  7. Question: Given a method in a protected class, what access modifier do you use to restrict access to that method to only the other members of the same class?

    A
    final

    B
    static

    C
    private

    D
    protected

    E
    volatile

    Note: The private access modifier limits access to members of the same class. Option A, B, D, and E are wrong because protected are the wrong access modifiers, and final, static, and volatile are modifiers but not access modifiers.
    1. Report
  8. Question: Which is a valid declaration within an interface?

    A
    public static short stop = 23;

    B
    protected short stop = 23;

    C
    transient short stop = 23;

    D
    final void madness(short stop);

    Note: (A) is valid interface declarations. (B) and (C) are incorrect because interface variables cannot be either protected or transient. (D) is incorrect because interface methods cannot be final or static.
    1. Report
Copyright © 2024. Powered by Intellect Software Ltd