第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java 未定義的構(gòu)造函數(shù)

Java 未定義的構(gòu)造函數(shù)

www說 2023-09-20 17:29:26
我編寫了一個小程序,其中包含三個類:Carpet、Calculator和Floor。通過使用 main 中的計算器類,將調(diào)用地毯類與地板類相乘。但是,我發(fā)現(xiàn)當(dāng)在計算器類中使用 double 作為返回類型時,我遇到了構(gòu)造函數(shù)未定義的錯誤。我發(fā)現(xiàn)是計算器類的問題,我有一個方法getTotalCost()可以返回地板和地毯的成本。為什么我在 main.c 中調(diào)用時不能僅將兩個對象作為計算器中的參數(shù)傳遞?我在計算器類中使用了 double 的原始返回類型。請幫我重寫計算器類,并向我解釋為什么我不能使用原始類型類,而必須在地板和地毯的計算器字段聲明中使用類名。為什么必須將地板和地毯的類名傳遞到構(gòu)造函數(shù)中才能構(gòu)建對象?如果您使用類名聲明兩個實(shí)例字段,那么修復(fù)方法是什么getTotalCost(),那么錯誤肯定會是這樣的:- The operator * is undefined for the argument     type(s) Floor, Carpet- Occurrence of 'carpet'- 1 changed line嘗試使用創(chuàng)建的類但收到錯誤。Carpet carpet = new Carpet(3.5);Floor floor = new Floor(2.75, 4.0);在計算器的參數(shù)中傳遞地板和地毯。//未定義構(gòu)造函數(shù) Calculator Calculator = new Calculator(floor,carpet);
查看完整描述

3 回答

?
慕桂英3389331

TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個贊

由于您的Calculator類只有默認(rèn)構(gòu)造函數(shù)(沒有任何參數(shù)的構(gòu)造函數(shù))和一個僅接受 的構(gòu)造函數(shù)double, double,因此您無法創(chuàng)建Calculator提供Carpet實(shí)例和Floor實(shí)例的實(shí)例。

所以你有兩個選擇:

  1. 將建筑面積和地毯成本傳遞給當(dāng)前建造者。

    Calculator calculator = new Calculator(floor.getArea(), carpet.getCost());

  2. 更改構(gòu)造函數(shù)以接受一個Carpet實(shí)例和一個Floor實(shí)例(那么您的Calculator類邏輯也應(yīng)該修改)

public class Calculator {


    private Floor floor;

    private Carpet carpet;


    public Calculator() {

    }


    public Calculator(Floor floor, Carpet carpet) {

        this.carpet=carpet;

        this.floor=floor;

    }


    public double getTotalCost() 

    {

        return (this.floor.getArea() * this.carpet.getCost());

    }

}


查看完整回答
反對 回復(fù) 2023-09-20
?
30秒到達(dá)戰(zhàn)場

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個贊

你不能乘以物體。看起來,你想在地板上鋪上地毯,然后得到……什么東西?這不是這樣的,想得更深一點(diǎn)——事實(shí)是你真的想將地毯的平方(更具體地說是平方米的數(shù)量)乘以 1 平方米的成本(貨幣數(shù)量)。當(dāng)您理解這一點(diǎn)時,您應(yīng)該可以輕松地更正您的代碼,因此地板地毯字段并能夠根據(jù)地板面積和地毯成本計算總成本


查看完整回答
反對 回復(fù) 2023-09-20
?
回首憶惘然

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個贊

Calculator 類的參數(shù)是(double, double)這樣的,因此它不會接受 Floor 和 Carpet 對象。您可以像這樣調(diào)用構(gòu)造函數(shù):


Calculator calc = new Calculator(carpet.getCost(), floor.getCost());

或者將構(gòu)造函數(shù)更改為以下內(nèi)容:


Calculator (Floor f, Carpet c) {

    this.floor = f.getCost();

    this.carpet = c.getCost();

}


查看完整回答
反對 回復(fù) 2023-09-20
  • 3 回答
  • 0 關(guān)注
  • 154 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號