我是Java的新手,正在完成一项任务。我应该创建我自己的类“Cylinder”并从中调用方法,以便能够打印出半径和高度,然后更改它并再次打印出来。我得到它来打印cylinder1的设定值和cylinder1.setRadius / setHeight..my问题是我必须打印像Cylinder Radius:和Height:...但是当它打印所有我得到的是3.04.0或者它设置的任何......我花了很长时间试图解决这个问题,欢迎任何帮助!
public class Funtimes{
public static void main(String[] args){
Cylinder cylinder1= new Cylinder(1,2);
System.out.println(cylinder1);
cylinder1.setRadius(3);
cylinder1.setHeight(4);
System.out.println(cylinder1);
}}
class Cylinder
{
private double radius, height, area, volume;
public Cylinder(double height, double radius){
this.radius = radius;
this.height=height;
}
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 :(得分:5)
修改您的toString()
public String toString () {
return String.format("Radius: %s Height: %s", radius, height);
}
答案 1 :(得分:2)
使用StBuild.append("Radius:").append(radius).append("Height:").append(height)
答案 2 :(得分:1)
您可以将toString
方法更改为此类
public String toString(){
return "Cylinder Radius" + this.radius + " Height" + this.height;
}
在您的情况下,您将半径和高度值一起添加到字符串中,这就是您获得响应的原因。
答案 3 :(得分:1)
StBuild.append("Radius: ").append(radius);
StBuild.append("Height: ").append(height);
答案 4 :(得分:1)
您可以使用String.format(String, Object...)
生成格式化的String
,其中一行 1 ,如
@Override
public String toString() {
return String.format("Cylinder Radius: %.2f Height: %0.2f", radius, height);
}
你可以用你的StringBuilder
方法做一些类似的事情(但它有点难以阅读,IMO所以我不会让它成为一个单行)。像,
@Override
public String toString() {
StringBuilder StBuild = new StringBuilder();
StBuild.append("Cylinder Radius: ").append(radius)
.append(" Height: ").append(height);
return StBuild.toString();
}
1 我建议您始终使用Override
注释,当您的方法旨在覆盖超类中的某些内容时,它可以为您节省数小时的挫折感(但不是) 子>
答案 5 :(得分:0)
编辑你的toString方法,如下所示:
public String toString (){
StringBuilder stBuild = new StringBuilder();
stBuild.append("Cylinder Radius:");
stBuild.append(radius);
stBuild.append(" and Height:");
stBuild.append(height);
return StBuild.toString();
}