ExamVeda
Login
Home
51
What is the output of the program?
class MyClass{
      MyClass(){
            System.out.print("one");
      }
      public void myMethod(){
            this();
            System.out.print("two");
      }
}
 
public class TestClass{
      public static void main(String args[]){
            MyClass obj = new MyClass();
            obj.myMethod();
      }
}
Discuss
Answer & Solution
Answer: Option D
Solution:
The code will result in a compilation error because in the method myMethod, the use of this() is incorrect.

In Java, this() is used to call another constructor, but it can only be used in a constructor, not in a method.

Using this() in myMethod causes a compilation error.

Thus, the program will not compile, and the correct answer is a Compilation Error.
52
Determine output:
public class Test{
      public static void main(String args[]){
            MyClass obj = new MyClass();
            obj.val = 1;
            obj.call(obj);
            System.out.println(obj.val);
      }
}

class MyClass{
      public int val;
      public void call(MyClass ref){
            ref.val++;
      }
}
Discuss
Answer & Solution
Answer: Option B
Solution:
Step-by-step breakdown:

1. The main method in the Test class creates an instance of MyClass called obj.

2. The val field of obj is set to 1 with obj.val = 1.

3. The call method is invoked on obj with obj itself as the argument: obj.call(obj).

4. Inside the call method, the val field of the passed MyClass instance (ref) is incremented by 1 using ref.val++. Since ref refers to obj, this increments obj.val from 1 to 2.

5. Finally, System.out.println(obj.val) prints the value of obj.val, which is now 2.

Therefore, the output of the program is 2.
53
Determine output:
class MyClass{
	int i;
	int j;

	public MyClass(int i, int j){
		this.i = i;
		this.j = j;
	}

	public void call(){
		System.out.print("One");
	}
}

public class Test{
	public static void main(String args[]){
		MyClass m = new MyClass(); //line 1
		m.call(); //line 2
	}
}
Discuss
Answer & Solution
Answer: Option B
No explanation is given for this question. Let's Discuss on Board
54
public class MyClass{ }

For the above class(MyClass) what is the correct way of declaring constructor?
Discuss
Answer & Solution
Answer: Option E
Solution:

Choice A,C are the correct answers.
The default access specifier for any constructor is same as the access specifier of class.so the options A and C are correct.

55
What is the output for the below code?
public class A{
      int add(int i, int j){
            return i+j;
      }
}
public class B extends A{
      public static void main(String argv[]){
            short s = 9;
            System.out.println(add(s,6));
      }
}
Discuss
Answer & Solution
Answer: Option B
Solution:

Cannot make a static reference to the non-static method add(int, int) from the type A. The short s is autoboxed correctly, but the add() method cannot be invoked from a static method because add() method is not static.

56
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";
      }
}
Discuss
Answer & Solution
Answer: Option A
Solution:

Java pass reference as value. passing the object reference, and not the actual object itself. Simply reassigning to the parameter used to pass the value into the method will do nothing, because the parameter is essentially a local variable.

57
What is the output for the below code?
public class Test{
      public static void printValue(int i, int j, int k){
            System.out.println("int");
      }

      public static void printValue(byte...b){
            System.out.println("long");
      }

      public static void main(String... args){
            byte b = 9;
            printValue(b,b,b);
      }
}
Discuss
Answer & Solution
Answer: Option B
Solution:

Primitive widening uses the smallest method argument possible. (For Example if you pass short value to a method but method with short argument is not available then compiler chooses method with int argument). But in this case compiler will prefer the older style before it chooses the newer style, to keep existing code more robust. var-args method is looser than wider.

58
class A{
      A(String s){}

      A(){}
}

class B extends A{
      B(){}
      B(String s){
            super(s);
      }
      void test(){
            // insert code here
      }
}

Which of the below code can be insert at line 7 to make clean compilation ?
Discuss
Answer & Solution
Answer: Option A
No explanation is given for this question. Let's Discuss on Board
59
What is the output for the below code?
class A{
      public A(){
            System.out.println("A");
      }
      public A(int i){
            this();
            System.out.println(i);
      }
}
class B extends A{
      public B(){
            System.out.println("B");
      }
      public B(int i){
            this();
            System.out.println(i+3);
      }
}
public class Test{
      public static void main (String[] args){
            new B(5);
      }
}
Discuss
Answer & Solution
Answer: Option A
Solution:

Constructor of class B call their superclass constructor of class A (public A()), which execute first, and that constructors can be overloaded. Then come to constructor of class B (public B (int i)).

60
Which of these is a legal definition of a method named examveda assuming it throws IOException, and returns void. Also assume that the method does not take any arguments. Select the one correct answer.
Discuss
Answer & Solution
Answer: Option B
No explanation is given for this question. Let's Discuss on Board