N'est pas une classe englobante Java

Je suis en train de faire un jeu de Tetris et j'obtiens l'erreur de compilation

Shape is not an enclosing class

lorsque j'essaye de créer un objet

public class Test {
    public static void main(String[] args) {
        Shape s = new Shapes.ZShape();
    }
}

Je suis en utilisant les classes internes pour chaque forme. Voici la partie de mon code

public class Shapes {
    class AShape {
    }
    class ZShape {
    }
}

Ce que je fais mal ?

  • new Shape().new ZShape();. La classe ZShape besoins en joignant une instance pour être instancié.
  • déplacer intérieure de fichier séparé
  • commentaire devrait être la réponse dans ce cas. Ils ne devraient pas être les classes internes. En les déplaçant d'Identifier les autres questions avec la Forme de classe qui existent.
  • Ne pas répondre à la question ici, mais puis-je suggérer d'utiliser l'héritage ici où AShape et ZShape étendre la classe de base Shapes. L'imbrication des classes n'est pas vraiment une bonne conception pour ce problème.
InformationsquelleAutor V Sebi | 2013-11-27