Questions for: Declarations And Access Control
(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.
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.
Discuss About this Question.
- float[ ] f = new float(3);
- float f2[ ] = new float[ ];
- float[ ]f1 = new float[3];
- float f3[ ] = new float[3];
- float f5[ ] = {1.0f, 2.0f, 2.0f};
(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.
Discuss About this Question.
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.
Discuss About this Question.
- final abstract class Test {}
- public static interface Test {}
- final public class Test {}
- protected abstract class Test {}
- protected interface Test {}
- abstract public class Test {}
(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.
Discuss About this Question.
Discuss About this Question.