Java Programming - Objects and Collections - Discussion

Discussion Forum : Objects and Collections - Finding the output (Q.No. 3)
3.
What will be the output of the program?
package foo; 
import java.util.Vector; /* Line 2 */
private class MyVector extends Vector 
{
    int i = 1; /* Line 5 */
    public MyVector() 
    { 
        i = 2; 
    } 
} 
public class MyNewVector extends MyVector 
{
    public MyNewVector () 
    { 
        i = 4; /* Line 15 */
    } 
    public static void main (String args []) 
    { 
        MyVector v = new MyNewVector(); /* Line 19 */
    } 
}
Compilation will succeed.
Compilation will fail at line 3.
Compilation will fail at line 5.
Compilation will fail at line 15.
Answer: Option
Explanation:

Option B is correct. The compiler complains with the error "modifier private not allowed here". The class is created private and is being used by another class on line 19.

Discussion:
3 comments Page 1 of 1.

Pratyush said:   5 years ago
If modifier will not private it's public.

Then the program will compile or not? Please explain.

Arnold01 said:   1 decade ago
Oh, I thought the reason is that top level classes within a package should only be public or package-private (no modifier)... and PRIVATE is only for member classes which makes the class invisible to the package level... which the compiler thinks will be a useless (unreachable) class for other classes.

Avinash 01 said:   1 decade ago
First error :chance of getting error in line number 15
because int is not declared

Post your comments here:

Your comments will be displayed after verification.