Recursividade em classes java

Eu cheguei com este com este código para meu professor, e ele disse que dentro da orientação a objeto isto era proibido, pois se tratava de recursividade de classes, e eu gostaria de saber se é mesmo proibido e porque é proibido, ele simplesmente falou que não pode e não deu nenhuma explicação

Intent intencao = new Intent(JogoActivity.this, JogoActivity.class);
intencao.putExtra("xix", iPlacar[0]);
intencao.putExtra("bola", iPlacar[1]);
intencao.putExtra("velha", iPlacar[2]);
startActivity(intencao);
finish();

Não há problema conceitual nenhum (valha o duplo negativo!) em ter uma classe que possua campos que referenciem instancias da mesma classe.

Isto é tão normal que é assim que são implementadas coisas básicas como são as listas encadeadas:

class ElementoDaLista
{
    Object dados;
    ElementoDaLista proximoElemento;
}

Exemplo não-ficticio do codigo usado nas bibliotecas Java: http://hg.openjdk.java.net/jdk7/jdk7/jdk/file/9b8c96f96a0f/src/share/classes/java/util/LinkedList.java#l957


Outro exemplo disto é quando uma classe possui uma coleção de itens “filhos” e cada um dos itens “filhos” possui uma referencia para a coleção “pai”:

class Colecao {
    ItemDaColecao[] itens;
    ....
}

class ItemDaColecao {
    Colecao colecao;

    public ItemDaColecao(Colecao dono) {
      this.colecao = dono;
    }
    ...
}

Agora não entendi exatamente onde há “recursão” no seu exemplo.

Eu inicio uma Activity com nome JogoActivity dentro de uma Activity já aberta, assim eu estou instanciando um objeto dentro do mesmo objeto

E qual o problema?

Seu professor realmente disse que na orientação à objetos é proibido um objeto de uma classe criar objetos de sua própria classe?

Será que que ele não quis dizer que, para a modelagem do problema proposto não era permitido fazer isso.

O que exatamente você precisa fazer e como você fez?

1 curtida