[英]creating a custom class! Java
我是Java新手,正在从事作业。 我应该创建自己的类“ Cylinder”并从中调用方法,以便能够打印出半径和高度,然后对其进行更改并再次打印出来。 我得到它来打印cylinder1和cylinder1.setRadius / setHeight ..的设置值。我的问题是我必须让它打印类似Cylinder Radius:and 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);
}
}
修改你的toString()
public String toString () {
return String.format("Radius: %s Height: %s", radius, height);
}
使用StBuild.append("Radius:").append(radius).append("Height:").append(height)
您可以将toString
方法更改为如下所示
public String toString(){
return "Cylinder Radius" + this.radius + " Height" + this.height;
}
在您的情况下,您要将半径和高度值一起附加在字符串中,这就是为什么要获得响应的原因。
StBuild.append("Radius: ").append(radius);
StBuild.append("Height: ").append(height);
您可以使用String.format(String, Object...)
生成一行1的格式化String
,例如
@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
注释,当您的方法打算覆盖超类中的某些内容时,它可以节省您数小时的沮丧(但不是)。
如下编辑您的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();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.