我目前正在进行Java课程(我的单身汉最后一个课程,yay),而且我很难在下面尝试理解课程并解决这个问题。我目前正在使用的教科书非常令人困惑,我尝试使用其他在线资源来弄清楚我做错了什么,但我似乎仍然坚持下面的问题。每当我尝试运行程序时,我得到的所有答案都是0.00.0
,这是因为我自己错误地将值分配给cylinder1
?另外,对于toString()
课,我怎么做呢?无论我能做什么,我都会在将double
转换为String
时遇到错误。
任何帮助都会受到赞赏。
感谢。
实现下面的UML中显示的名为
Cylinder
的类。构造函数接受并初始化Cylinder
的半径和高度,而访问器和变换器允许在构造对象后更改它们。该类还包括计算和返回Cylinder
的体积和表面积的方法。最后,它包含一个toString
方法,该方法返回形状的名称,半径和高度。创建一个main
方法,该方法实例化4个Cylinder
个对象(任何参数),用toString()
显示它们,在每个参数中更改一个参数(您的选择),然后再次显示它们。 [15分]
import java.util.*;
import java.text.*;
import java.io.*;
import java.lang.*;
class Cylinder
{
private double radius, height, area, volume;
public Cylinder(double height, double radius) {
radius = 0.0;
height = 0.0;
}
public double getRadius() {
return radius;
}
public double getHeight() {
return height;
}
public double getArea() {
double area = (2 * Math.PI * radius * height) + (2 * Math.PI * Math.pow(radius, 2));
return area;
}
public void setRadius(double r) {
radius = r;
}
public void setHeight(double h) {
height = h;
}
public double calcVolume() {
double volume = Math.PI * Math.pow(radius, 2) * height;
return volume;
}
public String toString (){
StringBuilder StBuild = new StringBuilder();
StBuild.append(radius).append(height);
return StBuild.toString();
}
public static void main(String[] args) {
Cylinder cylinder1 = new Cylinder(5, 5);
System.out.println(cylinder1);
}
}
答案 0 :(得分:3)
由于这显然是家庭作业我不会给你答案,但我会尝试解释一些事情。
此:
public Cylinder(double height, double radius) {
radius = 0.0;
height = 0.0;
}
是一个构造函数。当您创建一个对象(和一个类的实例)时,您可以调用它。你可以这样称呼它:
Cylinder cylinder1 = new Cylinder(5, 5);
但你班上会发生什么?当你调用构造函数时,你真的保存了你想要的值吗?
至于toString方法,你可以为double(height.toString)调用toString,或者你可以做我总是做的事情,只是通过添加一个字符串作弊。
public String toString (){
return "Cylinder [ h: " + height + " - r: " + radius + " - v: " + calcValume() + "]";
}
答案 1 :(得分:1)
Cylinder
中的将构造函数更改为:
public Cylinder(double height, double radius) {
this.radius = radius;
this.height = height;
}
在void main()中:
Cylinder cylinder1 = new Cylinder(5, 5);
System.out.println(cylinder1.calcVolume());
这样可行。
但你应该将main方法转移到其他类。
答案 2 :(得分:1)
在构造函数中,您将radius和height设置为0.0。尝试:
public Cylinder(double height, double radius) {
this.radius = radius.
this.height = height;
}