在构造函数工作之前甚至在Java中称为对象初始化的方法



我想问一个有关Java构造函数的问题。

示例,我有" A"类和" B"类,并且在" B"类中创建了构造函数。在正常的方式中,当我在" A类的主要方法中创建" 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");
    }
}

正常:: output :: hello constructor 你好方法

我想要此输出:: 你好方法你好constructor

可以吗?对不起,我的英语不好...

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

实际上你不能以自己的思维方式做到这一点(或者我不知道一种方法),但是您可以尝试以下方法:

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

最新更新