2016-12-22 19 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"); 
} 
相关问题