Declaration And Access Control
Name: _____________________
Date: _____________________
Instructions: Answer all questions. Write your answers clearly in the space provided.
What is the default access modifier for class members in Java if no access modifier is specified?
Which access modifier restricts a class member's visibility only to the same class and its subclasses?
What keyword is used to declare a constant in Java, which is implicitly final and static?
Which of the following access modifiers allows access to a class member from any class in any package?
What is the access level of a class member with no access modifier specified in Java?
In Java, which access modifier allows a method or variable to be accessed within the same package only?
Which keyword is used to explicitly specify that a method cannot be overridden in a subclass?
What is the default access modifier for a class in Java if no access modifier is specified?
Which access modifier allows a class member to be accessed only within its own class and package?
In Java, which access modifier allows a class member to be accessed from anywhere in the code?
Suppose a class has public visibility. In this class we define a protected method. Which of the following statements is correct?
The object is created with new keyword
A package is a collection of
A method within a class is only accessible by classes that are defined within the same package as the class of the method. Which one of the following is used to enforce such restriction?
Choose the correct statement. Restriction on static methods are: I.xa0xa0xa0They can only call other static methods. II.xa0xa0 They must only access static data. III.xa0They cannot refer this or super in any way.
Name the keyword that makes a variable belong to a class, rather than being defined for each instance of the class.
What keyword is used to declare a method that can be called without creating an instance of the class?
Which of the following access modifiers restricts a method or variable's access to the same package only?
In Java, what is the purpose of the static keyword when applied to a variable?
Which keyword is used to define a superclass's method that is overridden by a subclass method?
What is the access level of a class member declared as private in Java?
Which access modifier allows a class member to be accessed within the same package and its subclasses?
What is the keyword used to declare a class that cannot be instantiated and can only be extended?
In Java, what access modifier is used to specify that a class member can be accessed only within its class?
Which of the following is not an access modifier in Java?
What access modifier allows a class member to be accessed from any class in the same package or any subclass?
In Java, which access modifier allows a class member to be accessed from any class, even outside the package?
What keyword is used to declare a method that is implemented in a subclass to provide a specific implementation?
In Java, what is the purpose of the final keyword when applied to a method?
Which access modifier allows a class member to be accessed from any class in the same package but not from outside?
What keyword is used to declare a variable that can be accessed without creating an instance of the class?
Which access modifier restricts a class member's visibility to only the same class, its package, and subclasses?
In Java, what is the purpose of the final keyword when applied to a class?
Which keyword is used to declare a method that cannot be overridden in a subclass?
What is the access level of a class member declared as protected in Java?
Which keyword is used to explicitly specify that a method should be overridden in a subclass?
Choose all the lines which if inserted independently instead of "//insert code here" will allow the following code to compile: public class Test{
public static void main(String args[]){
add()
add(1)
add(1, 2)
}
// insert code here
}
What is the result of compiling and running the following code? class Base{
private Base(){
System.out.print("Base")
}
}
public class test extends Base{
public test(){
System.out.print("Derived")
}
public static void main(String[] args){
new test()
}
}
What is the result of compiling and running the following code? public class Tester{
static int x = 4
public Tester(){
System.out.print(this.x)
// line 1
Tester()
}
public static void Tester(){ // line 2
System.out.print(this.x)
// line 3
}
public static void main(String... args){ // line 4
new Tester()
}
}
What is the result of compiling and running the following code? public class Tester{
static int x = 4
int y = 9
public Tester(){
System.out.print(this.x)
// line 1
printVariables()
}
public static void printVariables(){
System.out.print(x)
// line 2
System.out.print(y)
// line 3
}
public static void main(String... args) { // line 4
new Tester()
}
}
Consider the following two classes declared and defined in two different packages, what can be added in class B to form what considered a correct access to class A from main() method of class B? package subPackage
public class A { }
package anotherPackage
// line 1
public class B{
public static void main(String[] args){
// line 2
}
} 1. At line1 add noting
At line2 add: new A()
2. At line 1 add: import package.*
at line 2 add : new subPackage.A()
3. At line 1 add: import subPackage.*
at line 2 add : new A()
4. At line 1 add: import subPackage.A
at line 2 add : new A()
Determine output: public class InitDemo{
static int i = demo()
static{
System.out.print(i)
}
InitDemo(){
System.out.print("hello1")
}
public static void main(String... args){
System.out.print("Hello2")
}
static int demo(){
System.out.print("InsideDemo")
return 10
}
}
Which statements are most accurate regarding the following classes? class A{
private int i
protected int j
}
class B extends A{
private int k
protected int m
}
Choose the correct statement public class Circle{
private double radius
public Circle(double radius){
radius = radius
}
}
You have the following code in a file called Test.java class Base{
public static void main(String[] args){
System.out.println("Hello")
}
}
public class Test extends Base{} What will happen if you try to compile and run this?
What will be the output? public class Test{
static{
int a = 5
}
public static void main(String args[]){
new Test().call()
}
void call(){
this.a++
System.out.print(this.a)
}
}
Determine Output: class MyClass{
static final int a = 20
static final void call(){
System.out.println("two")
}
static{
System.out.println("one")
}
}
public class Test{
public static void main(String args[]){
System.out.println(MyClass.a)
}
}
What is the output for the below code? public class A{
static{
System.out.println("static")
}
{
System.out.println("block")
}
public A(){
System.out.println("A")
}
public static void main(String[] args){
A a = new A()
}
}
What will be the output? public class Test{
public static void main(String[] args){
String value = "abc"
changeValue(value)
System.out.println(value)
}
public static void changeValue(String a){
a = "xyz"
}
}
What will be the output for the below code? public class Test{
static{
int a = 5
}
public static void main(String[] args){
System.out.println(a)
}
}
Determine output: class A{
{
System.out.print("b1 ")
}
public A(){
System.out.print("b2 ")
}
}
class B extends A{
static{
System.out.print("r1 ")
}
public B(){
System.out.print("r2 ")
}
{
System.out.print("r3 ")
}
static{
System.out.print("r4 ")
}
}
public class Test extends B{
public static void main(String[] args){
System.out.print("pre ")
new Test()
System.out.println("post ")
}
}
What will be the output for the below code? static public class Test{
public static void main(String[] args){
char c = 'a'
switch(c){
case 65 : System.out.println("one")
break
case 'a': System.out.println("two")
break
case 3 : System.out.println("three")
}
}
}
What will be the output after compiling and running following program code? public class Test{
static int a
public static void main(String[] args){
System.out.println("one")
call(1)
}
static void call(int a){
this.a=10
System.out.println("two "+a)
}
}
What will be the output after the following program is compiled and executed? public class Test{
public static void main(String args[]){
int x = 10
x = myMethod(x--)
System.out.print(x)
}
static int myMethod(final int x){
return x--
}
}
What can directly access and change the value of the variable qusNo? package com.mypackage
public class Test{
private int qusNo = 100
}
Answer Key
" or "add(arr, arr)
" where "arr" could be defined as "int[] arr = new int[5]
" static void add(int...args){} is a valid way to define var-args (there is no need to have any space between "..." and the type and name of the var-arg param)
only public, abstract & final are permitted.