Java Programming - Declarations and Access Control - Discussion

Discussion Forum : Declarations and Access Control - Finding the output (Q.No. 3)
3.
What will be the output of the program?
public class A
{ 
    void A() /* Line 3 */
    {
        System.out.println("Class A"); 
    } 
    public static void main(String[] args) 
    { 
        new A(); 
    } 
}
Class A
Compilation fails.
An exception is thrown at line 3.
The code executes with no output.
Answer: Option
Explanation:

Option D is correct. The specification at line 3 is for a method and not a constructor and this method is never called therefore there is no output. The constructor that is called is the default constructor.

Discussion:
15 comments Page 2 of 2.

Sandeep Tomar said:   1 decade ago
If we are allowed to have method with same name. How Compiler will come to know whether we have written a valid function code or a wrong constructor code. Please help to clarify on this. Thanks.

Aqueenni said:   10 years ago
As per my knowledge, method name starts with a lowercase.

Here it is void A().

So one can also think that it is a constructor declared wrongly and hence the option B. Compilation fails.

Ishu said:   9 years ago
Constructor don't have return type and in this problem there is return type which is void A() so this is a method and int his very question method name is also with same name as class so block will not execute.

Alexandre said:   9 years ago
For me, the answer is "B" Compilations fails, because the compiler by Eclipse gives me this message (before compile, I can't compile).

"This method has a constructor name".
(1)

Ayylmao said:   8 years ago
This is easy, get the constructor basics right first.

Like everyone said a constructor doesn't have a return type.
Therefore void A(){//code}, int A(){//code}, float A(){//code} ,etc. are all methods where as,
A(){//code} is a constructor

Therefore in the given code, just remove 'void' and i'll become a constructor and print "Class A" otherwise it won't do anything.
(1)


Post your comments here:

Your comments will be displayed after verification.