java - 创建单个对象时如何执行多个构造函数

标签 java constructor

<分区>

我想在创建单个对象时执行多个构造函数。例如,我有一个这样的类定义-

public class Prg
{
    public Prg()
    {
        System.out.println("In default constructor");
    }
    public Prg(int a)
    {
        System.out.println("In single parameter constructor");
    }
    public Prg(int b, int c)
    {
        System.out.println("In multiple parameter constructor");
    }
}

我正在尝试通过以下代码实现它 -

public class Prg
{
    public Prg()
    {
        System.out.println("In default constructor");
    }
    public Prg(int a)
    {
        Prg();
        System.out.println("In single parameter constructor");
    }
    public Prg(int b, int c)
    {
        Prg(b);
        System.out.println("In multiple parameter constructor");
    }
    public static void main(String s[])
    {
        Prg obj = new Prg(10, 20);
    }
}

但在这种情况下,它会产生错误,例如 -

Prg.java:11: error: cannot find symbol
            Prg();
            ^
  symbol:   method Prg()
  location: class Prg
Prg.java:16: error: cannot find symbol
            Prg(b);
            ^
  symbol:   method Prg(int)
  location: class Prg
2 errors

谢谢

最佳答案

在构造函数中使用 this() 而不是 Prg()

关于java - 创建单个对象时如何执行多个构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18999635/

相关文章:

java - 将 Firefox 配置文件设置为使用 Selenium 和 Java 自动下载文件

Java 字符编码、ISO 到 UTF 转换

java - Java实例真的这么快吗?

c++ - 复制构造函数问题李普曼

c++ - 如何允许模板类构造函数根据基类型支持不同数量的参数?

c++ - 包含内部模板类的 C++ 模板类构造函数的正确语法

java - 在 Eclipse 下运行 JMH 基准测试

java - java中的第六维字符串数组

c++ - 覆盖基类调用的函数?

c++ - 如何在 C++ 中正确访问继承的方法和构造函数?