猿问

从主方法打印一个方法

我是新手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();

    }

}



UYOU
浏览 206回答 3
3回答

叮当猫咪

您的代码接近正确 - 无论如何对于初学者:)在您接近解决方案的方式上似乎存在轻微的概念性误解。如果我过于简单化,或者假设你知道的比你知道的少,我深表歉意,但过度解释似乎比解释不足更好。先说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() {&nbsp; return width * height * depth;}(请注意,您也不需要将其分配给int Boxvolume并且可以删除该变量 - 或者如果您愿意,可以保留它,完全由您决定)在您的main方法中完成此操作后,您可以使用以下命令获取并打印盒子的体积a:double volume = a.volume();System.out.println(volume);如果您想打印列表中所有框的体积(目前只是一个),您可以在for循环中放入等效代码,例如:for (Box bx : boxes) {&nbsp; bx.print();&nbsp; double volume = bx.volume();&nbsp; System.out.println(volume);}请注意,这里我们调用的是bx.volume(),而不是a.volume(),因为在这种情况下,我们对循环中当前正在考虑的盒子的体积感兴趣,而不仅仅是盒子a。

SMILET

你的代码根本就错了。首先,您从实例变量(即a.volume();. 此外,您的数量和价格方法中不需要双参数。价格方法已经调用了成交量并且您没有在成交量中使用 BV 参数。所以正确的版本应该是这样的:public static void main(String[] args) {&nbsp; &nbsp; Box a = new Box(20, 30, 40);&nbsp; &nbsp; ArrayList<Box> boxes = new ArrayList<>();&nbsp; &nbsp; boxes.add(a);&nbsp; &nbsp; for (Box bx : boxes) {&nbsp; &nbsp; &nbsp; &nbsp; bx.print();&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(bx.volume());&nbsp; &nbsp; }&nbsp; &nbsp;&nbsp;}class Box {&nbsp; &nbsp; int width;&nbsp; &nbsp; int height;&nbsp; &nbsp; int depth;&nbsp; &nbsp; public Box(int w, int h, int d) {&nbsp; &nbsp; &nbsp; &nbsp; this.width = w;&nbsp; &nbsp; &nbsp; &nbsp; this.height = h;&nbsp; &nbsp; &nbsp; &nbsp; this.depth = d;&nbsp; &nbsp; }&nbsp; &nbsp; public double volume() {&nbsp; &nbsp; &nbsp; &nbsp; int Boxvolume = width * height * depth;&nbsp; &nbsp; &nbsp; &nbsp; return Boxvolume;&nbsp; &nbsp; }&nbsp; &nbsp; public double price() {&nbsp; &nbsp; &nbsp; &nbsp; double Boxprice = volume() * 5;&nbsp; &nbsp; &nbsp; &nbsp; return Boxprice;&nbsp; &nbsp; }&nbsp; &nbsp; public void print() {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(this.width);&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(this.height);&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(this.depth);&nbsp; &nbsp; &nbsp; &nbsp; System.out.println();&nbsp; &nbsp; }}
随时随地看视频慕课网APP

相关分类

Java
我要回答