gpt4 book ai didi

Java 对象为计算变量返回零

转载 作者:行者123 更新时间:2023-11-29 03:29:54 25 4
gpt4 key购买 nike

这是我的第一个问题,我对编程还很陌生,所以请多多包涵。

我正在上 Java 课,在我当前的作业中,我必须创建三个圆的实例,计算它们的直径和面积,并打印值。前两个实例应该具有由 setRadius 方法设置的半径,而第三个实例应该保留基于半径 1 的默认计算。

编辑:问题是这样的:我使用 setRadius 方法的前两个对象返回了正确的值,但第三个对象旨在返回构造函数的默认值,而是返回了全零。

这是代码,在此先感谢!

//this class implements the Circle class
public class TestCircle
{
public static void main(String[] args)
{
Circle Circle1 = new Circle();
Circle Circle2 = new Circle();
Circle Circle3 = new Circle();

Circle1.setRadius(2);
Circle2.setRadius(10);

Circle1.display();
Circle2.display();
Circle3.display();
}
}


import java.lang.Math.*;
public class Circle
{
double radius;
double diameter;
double area;

public void Circle()
{
radius = 1;
diameter = radius * 2;
area = (radius * radius) * Math.PI;
}

public void setRadius(double rad)
{
this.radius = rad;
diameter = radius * 2;
area = (radius * radius) * Math.PI;
}


public void display()
{
System.out.println("Radius: " + radius);
System.out.println("Diameter: " + diameter);
System.out.println("Area: " + area);
}
}

最佳答案

这个

public void Circle()

只是一个返回类型为 void 的方法。对于构造函数,您需要

public Circle() // notice there is no return type

因为你实际上并没有提供一个构造函数,下面的

Circle Circle1 = new Circle();
Circle Circle2 = new Circle();
Circle Circle3 = new Circle();

使用编译器提供的默认构造函数。它有一个空主体,因此默认情况下字段值都初始化为 0

因为您只对其中两个调用 setRadius(),另一个将只显示 0 的值。

阅读构造函数 here .


Java 命名约定规定变量名应以小写字母开头并遵循 camelCase 格式。您可以进一步阅读此主题 here .

关于Java 对象为计算变量返回零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18818880/

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