2016-12-22 1 views
-2

Ich möchte eine Frage über Java-Konstruktor stellen.zu arbeiten andere Methode vor dem Konstruktor Arbeit auch als Objektinitialisierung in Java

Beispiel, ich habe "A" -Klasse und "B" -Klasse und ich erstellt Konstruktor in "b" -Klasse. Wenn ich das Klassenobjekt "b" in der Hauptmethode der Klasse "a" erzeuge, funktioniert der Konstruktor der Klasse "b" automatisch. Also, meine Frage ist, wenn ich b-Klasse-Objekt in "a" -Klasse erstellen, ich möchte andere Funktionen zuerst arbeiten, bevor Sie Konstruktor arbeiten. Also was soll ich tun?

public class A { 
    public static void main(String[] args) { 
     B b = new B(); 
    } 
} 

public class B { 
    public B() { 
     System.out.print("Hello Constructor"); 
    } 

    public void m() { 
     System.out.print("Hello Method"); 
    } 
} 

Normalerweise :: Output :: Hallo Constructor Hallo Methode

Ich möchte diese Ausgabe :: Hallo MethodeHallo Constructor

Kann sein? Sorry für mein schlechtes Englisch ...

Antwort

0

Innerhalb des Konstruktors von B, rufen Sie die Methode M. Ihre Frage ist ein bisschen verwirrend, aber wenn ich Sie richtig verstehe, ist das, was Sie wollen.

public class A{ 
public static void main(String[] args){ 
    B bb=new B(); 
} 

public class B{ 
public B(){ 
    M(); 
    System.out.print("Hello Constructor"); 
} 
public void M(){ 
    System.out.print("Hello Method"); 
} 
+0

Eigentlich habe ich keine Methode von Konstruktor andI zur Ausgabe Methode zuerst vor Konstruktor wollen anrufen möchten. Entschuldigung wegen meiner verwirrenden Frage. –

+0

Das ist nicht möglich. Wenn Sie in Java eine Instanz einer Klasse erstellen, wie bei B bb = new B();, rufen Sie die Konstruktormethode auf. Sie können keine Instanz einer Klasse erstellen, ohne zuerst den Konstruktor aufzurufen. – Sarah

0

eigentlich kann man es nicht mit Ihrem Denken Weg (oder ich weiß nicht, einen Weg für sie), aber Sie können versuchen, diese:

public class A { 
public static void main(String[] args) { 
     B b = new B(); 
    } 
} 

public class B { 
    public B() { 
     //write what are you wanting to do like m(); for this exapmle 
     System.out.print("Hello Constructor"); 
    } 

    public void m() { 
     System.out.print("Hello Method"); 
    } 
} 

sein einfacher Trick, aber es wokrs. durch die Art und Weise können Sie es ohne Konstruktor versuchen, wie Sie Ihre Variablen mit einer anderen Methode zu initialisieren:

public class A{ 
public static void main(String[] args){ 
    B bb=new B(); 
    bb.m(); 
    bb.b(); 
} 

public class B{ 
public void b(){ 
    System.out.print("Hello Constructor"); 
} 
public void m(){ 
    System.out.print("Hello Method"); 
} 
Verwandte Themen