Java Questions & Answers – Access Control – 1

This section of our 1000+ Java MCQs focuses on access control of Java Programming Language.

1. Which of these access specifiers must be used for main() method?
a) private
b) public
c) protected
d) none of the mentioned
View Answer

Answer: b
Explanation: main() method must be specified public as it called by Java run time system, outside of the program. If no access specifier is used then by default member is public within its own package & cannot be accessed by Java run time system.

2. Which of these is used to access a member of class before object of that class is created?
a) public
b) private
c) static
d) protected
View Answer

Answer: c
Explanation: None.

3. Which of these is used as a default for a member of a class if no access specifier is used for it?
a) private
b) public
c) public, within its own package
d) protected
View Answer

Answer: a
Explanation: When we pass an argument by call-by-value a copy of argument is made into the formal parameter of the subroutine and changes made on parameters of subroutine have no effect on original argument, they remain the same.
advertisement
advertisement

4. What is the process by which we can control what parts of a program can access the members of a class?
a) Polymorphism
b) Abstraction
c) Encapsulation
d) Recursion
View Answer

Answer: c
Explanation: None.

5. Which of the following statements are incorrect?
a) public members of class can be accessed by any code in the program
b) private members of class can only be accessed by other members of the class
c) private members of class can be inherited by a subclass, and become protected members in subclass
d) protected members of a class can be inherited by a subclass, and become private members of the subclass
View Answer

Answer: c
Explanation: private members of a class can not be inherited by a subclass.
Note: Join free Sanfoundry classes at Telegram or Youtube

6. What will be the output of the following Java code?

  1.     class access
  2.     {
  3.         public int x;
  4.  	private int y;
  5.         void cal(int a, int b)
  6.         {
  7.             x =  a + 1;
  8.             y =  b;
  9.         }        
  10.     }    
  11.     public class access_specifier 
  12.     {
  13.         public static void main(String args[])
  14.         {
  15.             access obj = new access();   
  16.             obj.cal(2, 3);
  17.             System.out.println(obj.x + " " + obj.y);     
  18.         }
  19.    }

a) 3 3
b) 2 3
c) Runtime Error
d) Compilation Error
View Answer

Answer: c
Explanation: None.
output:

advertisement
$ javac access_specifier.java
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	The field access.y is not visible

7. What will be the output of the following Java code?

advertisement
  1.     class access
  2.     {
  3.         public int x;
  4.  	private int y;
  5.         void cal(int a, int b)
  6.         {
  7.             x =  a + 1;
  8.             y =  b;
  9.         }   
  10.         void print() 
  11.         {
  12.             System.out.println(" " + y);     
  13.         } 
  14.     }   
  15.     public class access_specifier 
  16.     {
  17.         public static void main(String args[])
  18.         {
  19.             access obj = new access();   
  20.             obj.cal(2, 3);
  21.             System.out.println(obj.x);
  22.             obj.print();     
  23.         }
  24.    }

a) 2 3
b) 3 3
c) Runtime Error
d) Compilation Error
View Answer

Answer: b
Explanation: None.
output:

$ javac access_specifier.java
$ java access_specifier 
3 3

8. What will be the output of the following Java code?

  1.     class static_out 
  2.     {
  3.         static int x;
  4.  	static int y;
  5.         void add(int a, int b)
  6.         {
  7.             x = a + b;
  8.             y = x + b;
  9.         }
  10.     }    
  11.     public class static_use 
  12.     {
  13.         public static void main(String args[])
  14.         {
  15.             static_out obj1 = new static_out();
  16.             static_out obj2 = new static_out();   
  17.             int a = 2;
  18.             obj1.add(a, a + 1);
  19.             obj2.add(5, a);
  20.             System.out.println(obj1.x + " " + obj2.y);     
  21.         }
  22.    }

a) 7 7.4
b) 6 6.4
c) 7 9
d) 9 7
View Answer

Answer: c
Explanation: None.
output:

$ javac static_use.java
$ java static_use
7 9

9. Which of these access specifier must be used for class so that it can be inherited by another subclass?
a) public
b) private
c) protected
d) none of the mentioned
View Answer

Answer: a
Explanation: None.

Sanfoundry Global Education & Learning Series – Java Programming Language.

If you find a mistake in question / option / answer, kindly take a screenshot and email to [email protected]

advertisement
advertisement
Subscribe to our Newsletters (Subject-wise). Participate in the Sanfoundry Certification contest to get free Certificate of Merit. Join our social networks below and stay updated with latest contests, videos, internships and jobs!

Youtube | Telegram | LinkedIn | Instagram | Facebook | Twitter | Pinterest
Manish Bhojasia - Founder & CTO at Sanfoundry
Manish Bhojasia, a technology veteran with 20+ years @ Cisco & Wipro, is Founder and CTO at Sanfoundry. He lives in Bangalore, and focuses on development of Linux Kernel, SAN Technologies, Advanced C, Data Structures & Alogrithms. Stay connected with him at LinkedIn.

Subscribe to his free Masterclasses at Youtube & discussions at Telegram SanfoundryClasses.