2016-12-22 25 views
-2

我想問一個關於java構造函數的問題。在構造函數工作之前使用其他方法甚至在java中調用對象初始化

例如,我有「A」類和「B」類,我在「b」類中創建了構造函數。正常情況下,當我在「a」類的main方法中創建「b」類對象時,類「b」構造函數將自動工作。所以,我的問題是當我在「a」類中創建b類對象時,我想在工作構造函數之前先處理其他函數。 那我該怎麼辦?

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"); 
    } 
} 

通常::輸出:: 你好構造 hello方法

我想這個輸出:: hello方法你好構造

可以嗎?對不起,我的英語不好......

回答

0

在B的構造函數裏面,調用方法M.你的問題有點混亂,但如果我理解你正確的話,這就是你想要的。

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

其實,我並不想構造函數之前先調用構造函數從安迪方法要輸出方法。對我這個令人困惑的問題抱歉。 –

+0

這是不可能的。在Java中,當你創建一個類的實例時,如B bb = new B();你正在調用構造函數方法。如果不先調用構造函數,則不能創建類的實例。 – Sarah

0

其實你不能用你的思維方式做到這一點(或者我不知道它的方式),但你可以試試這個:

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"); 
    } 
} 

其簡單的一招,但它wokrs。順便說一句,你可以嘗試沒有構造喜歡用另一種方法初始化的變量:

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"); 
} 
相關問題