"Un array le dices que es tamaño 10 y no puedes aumentar el tamaño."
Eso, en el caso de que estemos hablando de arrays estáticos, porsupuesto.
Que por defecto, no suele ser el caso de la POO, como Java. Aunque evidentemente, existen. Los arrays como tal, suelen serlo. Pero lo normar es usar ArrayLists o Lists.
Por otra parte, creo que o no te has explicado bien, o te estas haciendo un poco la picha un lio.
No se trata de "está permitido llamar a la propia pila dentro de su clase", no estas tocando en ningun momento la classe de la pila (stack)... ¿o si?
Tu estas creando un objeto, con tu classe, y este objeto tiene unas variables de objeto propias, de las cuales una de ellas es de tipo Stack ( http://java.sun.com/j2se/1.4.2/docs/api/java/util/Stack.html ).
Y en TU objeto, puedes crear los metodos que te den la gana para acceder a dicha pila, como es normal.
Ademas si quieres, puedes heredar, overridear, o lo que te de la gana, pero por lo general, así es como se trabaja con objetos, no es nada raro...