Page 1 of 1

About Question enthuware.ocpjp.v8.2.1895 :

Posted: Sat Jan 20, 2018 12:26 am
by ssoltanid
"All final or effectively final static variables"

You probably mean : "All final or effectively final variables"

Re: About Question enthuware.ocpjp.v8.2.1895 :

Posted: Sat Jan 20, 2018 9:34 am
by admin
No, because the question explicitly states, "...if the inner class is defined in a static method of encapsulating class.

Re: About Question enthuware.ocpjp.v8.2.1895 :

Posted: Mon Aug 13, 2018 5:20 pm
by dvc1190
One of the correct options is "All final or effectively final static or automatic variables".
Does this mean:
(1) All final or effectively final static variables and (2) all final or effectively final automatic variables?
Or, does it mean:
(1) All final or effectively final static variables and (2) all automatic variables?

Re: About Question enthuware.ocpjp.v8.2.1895 :

Posted: Mon Aug 13, 2018 8:20 pm
by admin
(1) All final or effectively final static variables and (2) all final or effectively final automatic variables.

Re: About Question enthuware.ocpjp.v8.2.1895 :

Posted: Thu Mar 25, 2021 2:09 am
by CzakoJanos
"All final or effectively final static or automatic variables"

Only the effective final automatic variables defined in the defining static method. And of course the static ones.

Re: About Question enthuware.ocpjp.v8.2.1895 :

Posted: Wed Nov 17, 2021 9:54 am
by Javatje
Exactly, automatic variables defined in other methods cannot be accessed, right?

Re: About Question enthuware.ocpjp.v8.2.1895 :

Posted: Wed Nov 17, 2021 11:18 am
by admin
The the problem statement says "..the method..", which means it is talking about the method in which the inner class is defined. It is not about automatic variables of other methods. Automatic variables of one method are never accessible to other other methods anyway.
The explanation also includes a detailed example that illustrates the situation.

Re: About Question enthuware.ocpjp.v8.2.1895 :

Posted: Tue Sep 24, 2024 2:46 am
by AndrianNew
All instance variables is also partially correct. I can always access instance variable using object reference

Code: Select all

public class Test10 {
    int ii = 20;
    public static void inner() {
        Test10 test10 = new Test10();
        test10.ii++; //non final
        class Inner {
            public Inner() {
                System.out.println(test10.ii);
            }
        }
        new Inner();
    }

    public static void main(String[] args) {
        Test10.inner();
    }
}

Re: About Question enthuware.ocpjp.v8.2.1895 :

Posted: Tue Sep 24, 2024 4:00 am
by admin
Yes, "but using an object reference" is not specified in the problem statement and it would amount to using the field of another object and should not be assumed.

Re: About Question enthuware.ocpjp.v8.2.1895 :

Posted: Sat Apr 26, 2025 9:09 am
by shear12345
The two correct answers are conflicting. One says "All static variables" and one says "All effectively final static...". To me, the first correct answer is stating that all static variables, including ones that are NOT effectively final; which isn't correct, to my knowledge. Additionally, that contradicts the second correct answer. Am I missing something here?

Re: About Question enthuware.ocpjp.v8.2.1895 :

Posted: Sat Apr 26, 2025 9:29 am
by admin
>the first correct answer is stating that all static variables, including ones that are NOT effectively final;

Right, that is what it means. why do you think it is not correct?

The second option is not contradictory to the first in the context of the question. Second option doesn't say "Only". The variable covered by this statement are indeed accessible as required by the problem statement.

Re: About Question enthuware.ocpjp.v8.2.1895 :

Posted: Tue Apr 29, 2025 3:46 pm
by shear12345
My apologies. I was under the impression that the inner class could not access any members that weren't effectively final. I should have done more research before creating my previous post. That was the source of my confusion on both matters I mentioned in my post.