亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

從主方法打印一個方法

從主方法打印一個方法

UYOU 2021-08-19 17:39:44
我是新手java,我想知道如何Boxvolume從我的volume方法中打印變量。我明白我需要創建Boxvolume一個全局變量。因此,如果有人可以幫助我,我將不勝感激。這是我的代碼:public static void main(String[] args) {    Box a = new Box(20, 30, 40);    ArrayList<Box> boxes = new ArrayList<>();    boxes.add(a);    for (Box bx : boxes) {        bx.print();    }    double V = volume(Boxvolume);    System.out.println(V);}class Box {    int width;    int height;    int depth;    public Box(int w, int h, int d) {        this.width = w;        this.height = h;        this.depth = d;    }    public double volume(double BoxV) {        int Boxvolume = width * height * depth;        return Boxvolume;    }    public double price(double BV) {        double Boxprice = volume(BV) * 5;        return Boxprice;    }    public void print() {        System.out.println(this.width);        System.out.println(this.height);        System.out.println(this.depth);        System.out.println();    }}
查看完整描述

3 回答

?
叮當貓咪

TA貢獻1776條經驗 獲得超12個贊

您的代碼接近正確 - 無論如何對于初學者:)


在您接近解決方案的方式上似乎存在輕微的概念性誤解。如果我過于簡單化,或者假設你知道的比你知道的少,我深表歉意,但過度解釋似乎比解釋不足更好。


先說main()方法。就其本身而言static,這意味著只有其中之一 - 您可以將其視為大老板,控制您的小應用程序中發生的事情。


該main()方法(老板)創建了一個Box,這是“事物”的單個實例。老板知道這件事,并稱他的盒子為a。他將那個盒子添加到一個集合中,這個集合目前只有一個盒子a,但將來可能會有很多個盒子。我相信到目前為止您已經了解了所有內容,只是將其作為背景提及。


這個Box類可以做一些事情。它知道width,height和depth本身,并且知道如何根據這些屬性計算volume和price。它也可以print在系統控制臺上代表自己。


在您的main方法中,創建名為的框后,a您想詢問該框的體積是多少。為此,您必須在您感興趣的框實例上調用該volume方法。


因此,您不只是要求任何體積,而是要求 box 的體積a。您可以使用以下語法執行此操作:


a.volume();

您不需要向該volume方法傳遞任何內容(因此您應該double BoxV從volume方法中刪除,因為該volume方法是其Box自身的一部分,因此它已經知道所有Box知道的內容 - width、height和depth,這就是它所需要的全部內容能夠計算體積。


因此,您需要進行一些更改:


該volume方法不需要接受任何參數,應該是:


public double volume() {

  return width * height * depth;

}

(請注意,您也不需要將其分配給int Boxvolume并且可以刪除該變量 - 或者如果您愿意,可以保留它,完全由您決定)


在您的main方法中完成此操作后,您可以使用以下命令獲取并打印盒子的體積a:


double volume = a.volume();

System.out.println(volume);

如果您想打印列表中所有框的體積(目前只是一個),您可以在for循環中放入等效代碼,例如:


for (Box bx : boxes) {

  bx.print();

  double volume = bx.volume();

  System.out.println(volume);

}

請注意,這里我們調用的是bx.volume(),而不是a.volume(),因為在這種情況下,我們對循環中當前正在考慮的盒子的體積感興趣,而不僅僅是盒子a。


查看完整回答
反對 回復 2021-08-19
?
SMILET

TA貢獻1796條經驗 獲得超4個贊

你的代碼根本就錯了。首先,您從實例變量(即a.volume();. 此外,您的數量和價格方法中不需要雙參數。價格方法已經調用了成交量并且您沒有在成交量中使用 BV 參數。


所以正確的版本應該是這樣的:


public static void main(String[] args) {


    Box a = new Box(20, 30, 40);


    ArrayList<Box> boxes = new ArrayList<>();


    boxes.add(a);


    for (Box bx : boxes) {

        bx.print();

        System.out.println(bx.volume());

    }    

}


class Box {


    int width;

    int height;

    int depth;



    public Box(int w, int h, int d) {

        this.width = w;

        this.height = h;

        this.depth = d;


    }


    public double volume() {


        int Boxvolume = width * height * depth;

        return Boxvolume;


    }


    public double price() {


        double Boxprice = volume() * 5;


        return Boxprice;

    }




    public void print() {


        System.out.println(this.width);

        System.out.println(this.height);

        System.out.println(this.depth);


        System.out.println();

    }


}


查看完整回答
反對 回復 2021-08-19
  • 3 回答
  • 0 關注
  • 228 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號