I think that it refers to the class of the factory (which is usually a static method in the class) which doesn't need to instantiate this specific class. However I don't think it is a defined or usually used term.
Example: Term
public abstract class Term {
public abstract Integer evaluate();
static Term literal(Integer number) {
return new Literal(number);
}
static Term add(Term left, Term right) {
return new Addition(left, right);
}
private static class Addition extends Term {
private Term left;
private Term right;
public Addition(Term left, Term right) {
this.left = left;
this.right = right;
}
@java.lang.Override
public Integer evaluate() {
return left + right;
}
}
private static class Literal extends Term {
private Integer number;
public Literal(Integer number) {
this.number = number;
}
@java.lang.Override
public Integer evaluate() {
return number;
}
}
}
This is a class called Term with 2 factory methods: literal and add, which both return a Term but a subclass of it. Term itself is not instantable, because it is abstract. To the outer world the inner classes are not visible (they are private). Accessible is just the interface / abstract class Term, which is what is referred to in
One application of this flexibility is that an API can return objects without making their classes public.
I think the "natural class" to return here would be an Term and new is bound to return an instance of exactly the given type. A factory method can return subtypes.
Example: Guava
Guava is a library which provides additional collection classes for Java.
One of these is an immutable list. It contains multiple factory methods for specific cases, for example one for an empty list and an additional one for lists which exactly one element.
I don't think the term "natural class" is "official" though. Without the context (and even with it, as we can see here) it is not sure that it is recognized. So I took your question on a more broader scale and explained what the chapter is about.