gpt4 book ai didi

java - 使用重载但方法不返回值。有任何想法吗?

转载 作者:太空宇宙 更新时间:2023-11-04 09:06:49 24 4
gpt4 key购买 nike

所以我目前正在学习 Java 类(class),是的,我是 Java 新手。我知道其中一些代码看起来有些多余,但事实就是如此。因此,本周我们正在研究重载具有相同名称但仅接受某些数据类型的方法。这是我将用来调用其他 java 方法的主要方法。

// This class uses a DebugBox class to instantiate two Box objects
public class DebugFour3
{
public static void main(String args[])
{
int width = 12,
length = 10,
height = 8;
DebugBox box1 = new DebugBox();
DebugBox box2 = new DebugBox(width, length, height);
System.out.println("The dimensions of the first box are");
box1.showData();
System.out.print(" The volume of the first box is ");
showVolume(box1);
System.out.println("The dimensions of the second box are");
box2.showData();
System.out.print(" The volume of the second box is ");
showVolume(box2);
}
public static void showVolume(DebugBox aBox)
{
double vol = aBox.getVolume();
System.out.println(vol);
}
}

现在,此处显示的第一组数据按其应有的方式工作,并产生体积 1。将第二个框的信息传递给 Second DeBugBox 方法后,它不会将其传递给获取体积并返回它。它仅返回长度、宽度、高度和体积 0。

public class DebugBox
{
private int width;
private int length;
private int height;
public DebugBox()
{
length = 1;
width = 1;
height = 1;
}
public DebugBox(int width, int length, int height)
{
width = width;
length = length;
height = height;
getVolume();
}
public void showData()
{
System.out.println("Width: " + width + " Length: " +
length + " Height: "+ height);
}
public double getVolume()
{
double vol = length * width * height;
return vol;
}
}

最佳答案

我认为您不需要在重载的构造函数中调用 getVolume() 方法。

正如@Eran所建议的,尝试更改为:

public DebugBox(int width, int length, int height)
{
this.width = width;
this.length = length;
this.height = height;
}

您需要使用 this 的原因是因为您已将构造函数参数命名为与类字段属性相同的名称,因此您需要使用“this”前缀引用外部属性。

关于java - 使用重载但方法不返回值。有任何想法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60135529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com