Page 1 of 1
About Question com.enthuware.ets.scjp.v6.2.260 :
Posted: Sat Apr 21, 2012 12:22 pm
by atheedom
Regarding this question: the answer being a compilation error on line 2.
public class TestClass
{
public static void main(){ new TestClass().sayHello(); } //1
public static void sayHello(){ System.out.println("Static Hello World"); } //2
public void sayHello() { System.out.println("Hello World "); } //3
}
Why is the error on line 2 rather than on line 3? I see line 2 as correct while line 3 repeats the method signature resulting in the error. Is there a rule about where errors are indicated?
If I compile this code on the command line I get the following response:
sayHello() is already defined in .....TestClass() public void sayHello() {...} //3
Thanks
Re: About Question com.enthuware.ets.scjp.v6.2.260 :
Posted: Sat Apr 21, 2012 8:46 pm
by admin
Hi,
The error is indeed at line 3 and that is the correct option as well.
C:\temp>javac TestClass.java
TestClass.java:5: sayHello() is already defined in TestClass
public void sayHello() { System.out.println("Hello World "); } //3
^
1 error
HTH,
Paul.
Re: About Question com.enthuware.ets.scjp.v6.2.260 :
Posted: Mon Aug 14, 2017 10:47 am
by Aditya553
for(final Object o2 :c){ }
final cannot be referred more than once but we are passing collection and now it will refer to all the objects of collection one by one.
Re: About Question com.enthuware.ets.scjp.v6.2.260 :
Posted: Mon Aug 14, 2017 9:18 pm
by admin
The scope of o2 is within one iteration of the for loop. So for the next iteration, it is a new variable. Thus, no problem with defining it again as final.
Re: About Question com.enthuware.ets.scjp.v6.2.260 :
Posted: Mon Aug 12, 2024 4:26 am
by wojciechblo
In my case, IntelliJ marks line //1 as red underline at "()" with message "Ambiguous method call[...]".
//2 and //3 are underlined in red too.
What answer should I mark then? IntelliJ said, the first compilation error is in //1
Re: About Question com.enthuware.ets.scjp.v6.2.260 :
Posted: Mon Aug 12, 2024 4:31 am
by wojciechblo
I used compiler: JDK 17.0.3 AdoptiumOpenJDK.
Re: About Question com.enthuware.ets.scjp.v6.2.260 :
Posted: Mon Aug 12, 2024 4:37 am
by wojciechblo
Imho, the best answer will be: "It will not compile."
Re: About Question com.enthuware.ets.scjp.v6.2.260 :
Posted: Sun Aug 18, 2024 9:45 pm
by rebasnop
atheedom wrote: ↑Sat Apr 21, 2012 12:22 pm
Regarding this question: the answer being a compilation error on line 2.
public class TestClass
geometry dash subzero
{
public static void main(){ new TestClass().sayHello(); } //1
public static void sayHello(){ System.out.println("Static Hello World"); } //2
public void sayHello() { System.out.println("Hello World "); } //3
}
Why is the error on line 2 rather than on line 3? I see line 2 as correct while line 3 repeats the method signature resulting in the error. Is there a rule about where errors are indicated?
If I compile this code on the command line I get the following response:
sayHello() is already defined in .....TestClass() public void sayHello() {...} //3
Thanks
Line 1: main Method
This method is the entry point of the program. It creates an instance of TestClass and calls the sayHello method on that instance. Note that the main method is declared without a return type, which is technically incorrect. It should be public static void main(String[] args).
Line 2: static Method
public static void sayHello() is a static method. Static methods belong to the class rather than to any particular instance of the class.
Line 3: Instance Method
public void sayHello() is an instance method. Instance methods are associated with an instance of the class.
Why Line 2 is the Problem
Line 2 Error:
The public static void sayHello() method conflicts with the public void sayHello() method because they share the same method name and parameter list. The compiler does not allow this in a class.
Line 3:
Line 3 (public void sayHello()) is also problematic, but the compiler error focuses on the fact that the method sayHello() is already defined (line 2), which is why it points out that issue.
Re: About Question com.enthuware.ets.scjp.v6.2.260 :
Posted: Mon Aug 19, 2024 12:24 am
by admin
>Note that the main method is declared without a return type, which is technically incorrect.
Please read carefully. The return type void is already written there.