About Question enthuware.ocpjp.v11.2.3503 :
Moderator: admin
-
- Posts: 1
- Joined: Sat Aug 15, 2020 6:37 pm
- Contact:
About Question enthuware.ocpjp.v11.2.3503 :
public class TestOuter { public static class TestInner {
public void sayIt(){ System.out.println("hello"); } }
public static void main(String[] args){
//call here
} }
Why TestInner.sayIt(); cannot be the the second answer?
public void sayIt(){ System.out.println("hello"); } }
public static void main(String[] args){
//call here
} }
Why TestInner.sayIt(); cannot be the the second answer?
-
- Site Admin
- Posts: 10386
- Joined: Fri Sep 10, 2010 9:26 pm
- Contact:
Re: About Question enthuware.ocpjp.v11.2.3503 :
As the explanation for this option says:
You can actually try it out.TestInner is static but its method sayIt is not. So, you need to do new TestInner().sayIt(); in main to invoke sayIt.
-
- Posts: 22
- Joined: Thu Dec 09, 2021 11:23 pm
- Contact:
Re: About Question enthuware.ocpjp.v11.2.3503 :
Hello, question:
new TestOuter.TestInner() -> are we using this call because TestInner is static? Thanks
new TestOuter.TestInner() -> are we using this call because TestInner is static? Thanks
-
- Site Admin
- Posts: 10386
- Joined: Fri Sep 10, 2010 9:26 pm
- Contact:
Re: About Question enthuware.ocpjp.v11.2.3503 :
Yes, that is correct. Just like you refer to any other static member of a class.
-
- Posts: 7
- Joined: Tue Sep 19, 2023 12:11 pm
- Contact:
Re: About Question enthuware.ocpjp.v11.2.3503 :
Hi,
I am wondering how you did not get that error that I am getting! it even does not compile!
Code: Select all
public class TestOuter
{
public static class TestInner
{
public void sayIt(){ System.out.println("hello"); }
}
public static void main(String[] args){
//call here
new TestOuter.TestInner() // ---> CLass or package is needed !!
}
public void tee() {
new TestOuter.TestInner() // ---> even here compiler error, CLass or package is needed !!
}
}
-
- Posts: 7
- Joined: Tue Sep 19, 2023 12:11 pm
- Contact:
Re: About Question enthuware.ocpjp.v11.2.3503 :
even your last answer does not compile:
new TestInner().sayIt(); ---> TestOuter.this can not be referenced from statis method. so new TestInner() wont compile!
you have to call is inside non static method.
inside static main method:TestInner.sayIt(); can be inserted in main.
TestInner is static but its method sayIt is not. So, you need to do new TestInner().sayIt(); in main to invoke sayIt.
new TestInner().sayIt(); ---> TestOuter.this can not be referenced from statis method. so new TestInner() wont compile!
you have to call is inside non static method.
-
- Site Admin
- Posts: 10386
- Joined: Fri Sep 10, 2010 9:26 pm
- Contact:
Re: About Question enthuware.ocpjp.v11.2.3503 :
The given answers and explanations are correct. Please read the options carefully.
BTW, you are missing a semi-colon in your code.
The last option indeed does not compile and that it why that option is an incorrect option.
BTW, you are missing a semi-colon in your code.
The last option indeed does not compile and that it why that option is an incorrect option.
Who is online
Users browsing this forum: No registered users and 5 guests