public Java Keyword with Examples

The public keyword is an access control modifier that may be applied to a class, a method or a field (a variable declared in a class).
If a class or its members are declared as public, they can be accessed from any other class regardless of the package boundary. It is comparable to a public place in the real world, such as a company cafeteria that all employees can use irrespective of their department.
public Java Keyword Example
Below example demonstrates the usage of public access modifier and it’s visibility. Please refer the comments are self-descriptive:

class ClassA {
    public String clazzName;

    public ClassA() {

    }

    public ClassA(String clazzName) {
        this.clazzName = clazzName;
    }

    public String getName() {

        System.out.println(clazzName); // public field can be used anywhere
        InnerClass innerClass = new InnerClass(); //public Inner Class can be used anywhere.
        return this.clazzName;
    }

    public class InnerClass {

    }
}

class ClassB extends ClassA {
    void test() {

        System.out.println(clazzName); //public field can be inherited to any subclass

        ClassA classA = new ClassA();

        System.out.println(classA.clazzName); //public field can be used anywhere

        classA.getName(); //public method can be used anywhere

        ClassA.InnerClass b = new ClassA.InnerClass(); //public Inner Class can be used anywhere.
    }
}

// below class is a different package
class ClassD extends ClassA {
    void methodOfClassD() {
        System.out.println(clazzName); // public field can be inherited to any sub class

        ClassA a = new ClassA();
        System.out.println(a.clazzName); // Public field can be used anywhere
        a.getName(); // Public method can be used anywhere
        ClassA.InnerClass innerClass = new ClassA.InnerClass(); // Public inner class can be used anywhere
    }
}