Over a million developers have joined DZone.

Where Private Variables Can Be Shared Between Classes

DZone's Guide to

Where Private Variables Can Be Shared Between Classes

· Java Zone ·
Free Resource

Download Microservices for Java Developers: A hands-on introduction to frameworks and containers. Brought to you in partnership with Red Hat.

I have used nested classes which accessed the private members of top level classes for some time, and discovered that a top level class can access the private members of nested classes. Recently, I discovered that nested classes can access private member or other nested classes. i.e. where the two classes are not nested, but share a top level class.


Perhaps private should be called "file local" c.f. package local. ;)
public interface MyApp {
    class Runner {
        public static void main(String... args) {
            // access a private member of another class
            // in the same file, but not nested.
            SomeEnum.VALUE1.value = "Hello World"; 

    enum SomeEnum {
        private String value;

        SomeEnum(final String value) {
            this.value = value;
        public String toString() {
            return value;


From http://vanillajava.blogspot.com/2012/02/outer-class-local-access.html

Download Building Reactive Microservices in Java: Asynchronous and Event-Based Application Design. Brought to you in partnership with Red Hat


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}