Top-level classes (not inner classes) can only have public or package-private (no modifier) access. They can additionally be abstract or final. Private and protected are NOT allowed for top-level classes - these modifiers only apply to class members (fields, methods, inner classes).