Win a copy of Programmer's Guide to Java SE 8 Oracle Certified Associate (OCA) this week in the OCAJP forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Mock Test Que...

 
Hemant Gupt
Greenhorn
Posts: 26
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
SOURCE : MARCUS GREEN


Question 8)
What will happen when you attempt to compile and run this code?

private class Base{}

public class Vis{
transient int iVal;
public static void main(String elephant[]){
}
}

1) Compile time error: Base cannot be private
2) Compile time error indicating that an integer cannot be transient
3) Compile time error transient not a data type
4) Compile time error malformed main method

ANS is 1.

Could anyone please explain why it is 1. I think we are not using Base class anywhere in the code.
 
Mustafa Musaji
Ranch Hand
Posts: 52
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
It doesn't matter that it's not being used, private is still an illegal access modifier for a top level class. Only public, abstract and final are allowed.
 
Hemant Gupt
Greenhorn
Posts: 26
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks for the reply...
But how do we conclude that a class is top-level. ??
 
Jesper de Jong
Java Cowboy
Saloon Keeper
Pie
Posts: 15438
41
Android IntelliJ IDE Java Scala Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If the class is not declared as a nested class inside another class or inside an interface, then it's a top-level class.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic