java - 复制构造函数冲突?

标签 java

我有一段较大的代码;

    public PizzaOrder(PizzaOrder PizzaOrderCopy)
    {
        this.pizza1 = PizzaOrderCopy.pizza1;
    }
    /**
     * @param args
     */
    public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        PizzaOrder pizzorder = new PizzaOrder();

        pizzorder.setNumPizza(1);
        pizzorder.setPizza1("small",1,1,1);
        pizzorder.setPizza2("medium",3,6,4);
        pizzorder.setPizza3("large",2,4,4);
        pizzorder.getpizza1info();
        pizzorder.getpizza2info();
        pizzorder.getpizza3info();
        pizzorder.calcTotal();

    }
        // TODO Auto-generated method stub      
}

我正在创建一个复制构造函数 PizzaOrderCopy 并复制 PizzaOrders 对象 Pizza1。当我构建我的代码时

PizzaOrdre pizzaorder = new PizzaOrder(); 

乱七八糟

the constructor PizzaOrder is undefined

因为它现在需要一个参数。

我的看法(很可能是错误的)是 PizzaOrder Copy 是单个副本,而 Pizzaorder 是单个副本。所以我想知道为什么它们会互相影响?我能想到的唯一解释是它们以某种方式连接在一起。

最佳答案

当类中没有定义构造函数时,Java 编译器提供默认的无参数构造函数。由于您在类中定义了复制构造函数,因此编译器不会添加无参数构造函数。因此,当你这样做时:

PizzaOrdre pizzaorder = new PizzaOrder(); 

您正在调用未定义的无参数构造函数,这导致了错误。因此,只需在 PizzaOrdre 类中添加一个无参数构造函数,如下所示:

public PizzaOrder(){}

关于java - 复制构造函数冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18501742/

相关文章:

java - 强制 javamailsender 进行身份验证

java - if-else if block 不包含else

java - 如何修复Android Studio中的网络安全配置?

java - 如何直接从Java代码发送带有附件的私有(private)公司电子邮件?

java - 命令提示 rune 本日志

java - JSOUP HTML 解析器

java - 无法使用 java 进程的 gdb 核心反汇编 $PC

java - Android套接字程序

java - 无法在 AsyncTask 中为 ProgressDialog 调用 Looper.prepare() 的线程内创建处理程序

java - 在java eclipse中在localhost上发布Web服务