2010-12-22 1 views
0


J'ai une superclasse (classe A) avec un certain nombre de sous-classes (classe B, classe C, classe D). Je voudrais créer des objets de l'une de ces sous-classes à l'intérieur d'une autre classe (classe M) afin que je puisse ajouter les objets à une classe dans la classe M.Aide à la création de classes dans une autre classe

Je voudrais savoir comment je peux créer l'une de ces sous-classes à l'intérieur de la classe M. je salue toutes les suggestions.

merci.

+0

Comment doit-classe M décider quelle classe pour créer? – bezmax

+0

C'est une bonne question mais je ne sais pas encore. Si vous avez la réponse, faites le moi savoir. Merci pour la question. – Kap

Répondre

1
public A createObject(int i) { 
    A result = null; 
    switch(i) { 
    case 1: 
     result = new B(); 
     break; 

    case 2: 
     result = new C(); 
     break; 
    } 
    return A; 
} 
+0

merci pour votre réponse – Kap

2

Je ne sais pas si vous êtes à la recherche d'un modèle de construction ou pour un façon d'instancier une classe interne. Si votre problème est lié à la façon d'instancier les classes internes voici un indice:

public class A { 
    public static class B {} 
    public class C {} 
} 

class M {{ 
    A.B b = new A.B(); 

    A a = new A(); 
    A.C c = a.new C(); 
}} 

Donc, pour les classes internes statiques, vous pouvez créer une instance avec un régulier « nouveau »,
mais pour les classes internes non statiques, vous doit créer une première instance de la classe environnante, puis appelez nouvelle pour la classe intérieure sur cette instance:

A a = new A(); 
    A.C c = a.new C(); 
+0

motif de construction – Kap

0

Vous créez toujours des objets à l'intérieur d'autres objets. Il n'y a pas d'autre façon de faire les choses en Java. L'usine est la meilleure approche. Si vous souhaitez garder les choses simples, vous pouvez simplement le faire comme ceci:

ArrayList<A> l = new ArrayList<A>(); 

l.add(new B()); 
l.add(new C()); 

depuis B et C sont de classe A. sous-classes

Questions connexes