I'm studying inheritance in Java and the book I'm studying from uses an Employee class to explain several concepts. Since there can be only one (public) class in a java file of the same name, and this class creates objects of another class, I have to define an Employee class in the same file, without the public modifier. I was under the impression that classes defined this way after another class body in the same java file aren't visible to other classes in the same package. Here's a sample Java code for demonstration:
package book3_OOP;
public class TestEquality3 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Employeee emp1 = new Employeee("John", "Doe");
        Employeee emp2 = new Employeee("John", "Doe");
        if (emp1.equals(emp2))
                System.out.println("These employees are the same.");
        else
            System.out.println("Employees are different.");
    }
}
class Employeee {
    private String firstName, lastName;
    public Employeee(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }
    public String getFirstName() {
        return firstName;
    }
    public String getLastName() {
        return lastName;
    }
    public boolean equals(Object obj) {
        //object must equal itself
        if (this == obj)
            return true;
        //no object equals null
        if (obj == null)
            return false;
        //test that object is of same type as this
        if(this.getClass() != obj.getClass())
            return false;
        //cast obj to employee then compare the fields
        Employeee emp = (Employeee) obj;
        return (this.firstName.equals (emp.getFirstName())) && (this.lastName.equals(emp.getLastName()));
    }
}
For instance, the class Employeee is visible to all classes in the package book3_OOP. Which is the reason behind the extra 'e' in Employee. As of now I have about 6 employee classes in this package, such as Employee5, Employee6, and so on.
How do I ensure that the second class defined in this way in a .java file aren't exposed to other classes in the same package? Using other modifiers like private or protected throw errors.
 
    