2016-04-09 21 views
0

Ich habe eine Klasse X, wo ich Methoden A und B haben.Aufruf Methode aus einer anderen Klasse in Schleife innerhalb der Aufrufklasse

Ich habe eine Klasse Y wo ich Schleife habe, wie unten

Ist es ideale Methode in einer anderen Klasse innerhalb for-Schleife zu nennen oder ist es eine ideale Möglichkeit, dies zu tun? bitte hilfe.

public class X { 
    public void A() { 
    } 
    public void B() { 
    } 
} 

public Class Y { 
    public void C() { 

     for(int i=0; i<0; i++) { 
      new ClassX.A() 
      .B(); 
     } 
    } 
} 

Antwort

0

Sie erkennen, dass Ihre Schleife nie ausgeführt wird? Das ist keine gute Möglichkeit zu codieren ...

wenn ich bei 0 beginne, und du gehst. Ich werde nie weniger als 0 sein.

Was versuchen Sie mit Klasse Y und Klasse X zu erreichen? Du kannst nicht einfach fragen, ob es optimal ist und keine Gründe dafür liefern, was du tust.

+0

Oops Entschuldigung, ich meinte das, ich bin seit 6 Uhr gestern auf, es war wie 30 Stunden. Entschuldige meinen Fehler. –

1

Sie müssen Ihre Loop-Bedingung anpassen; 0 ist nicht weniger als 0, so dass Ihre Schleife nicht eingegeben wurde. Als nächstes benötigen Sie eine Instanz von X, um A und B aufzurufen. Sie könnten wie

public class Y { 
    public void C() { 
     X x = new X(); 
     for (int i = 0; i < 10; i++) { 
      x.A(); 
      x.B(); 
     } 
    } 
} 

ein vor Ihrer Schleife instanziiert Oder die X in C wie

public class Y { 
    public void C(X x) { 
     for (int i = 0; i < 10; i++) { 
      x.A(); 
      x.B(); 
     } 
    } 
} 

oder machen es eine Instanz Feld passieren und konstruieren Y mit ihm wie

public class Y { 
    private X x; 
    public Y(X x) { 
     this.x = x; 
    } 
    public void C() { 
     for (int i = 0; i < 10; i++) { 
      x.A(); 
      x.B(); 
     } 
    } 
} 

Konventionell beginnen Java-Methodennamen mit einem Kleinbuchstaben.

+0

Frisch: Danke für deine Antwort. Ich habe hier Zweifel bezüglich y wir schaffen neue mtd Y innerhalb der Klasse C. Wir setzen die X-Klasse insideY ein, indem wir Y als Konstruktor machen? – divya

+0

** Nein **. Wir übergeben einen bereits instanziierten "X" -Referenz auf "Y" (wenn "Y" konstruiert ist). –

+0

Ich habe versucht, diese letzte Lösung.Aber ich bekomme nicht die referenzierte Klasse. Stattdessen bekomme ich null Zeiger. Ich fügte dieses in Klasse Y hinzu und schuf Klasse X wie das bleow :: private statisches X x; // Zeile in Klasse Y Meine Klasse X wie folgt aussieht :::::::::::::::::::::: public class X { public void A() { -System .out.print ("jzxhckjh"); Rückkehr; } public void B() { System.out.print ("jzxhckjh"); Rückkehr; } } – divya