基本上,有两个类......一个用于计算圆的区域,另一个用于输入他们想要使用的圆的数量,每个圆的半径和程序然后是在彼此之后显示它。最后,显示最大的区域。它显示一个错误,即第一个类中的方法无法应用于给定类型...
第一堂课:
public class Prac4 {
private float radius;
public Prac4() {
}
public void setRadius(float radius) {
this.radius = radius;
}
public float getRadius() {
return radius;
}
public double calcArea() { //Getting errors if I don't use double
return 3.14* radius*radius; //Getting errors if I try to use pow function as pow(radius, 2) even with java.lang.math
}
}
因此calcArea是在第二个函数中调用的部分,用于计算圆的面积。我试过让它成为公共浮点calcArea(),但它带来了一整套新的错误。
第二节课:
import java.util.*;
public class Prac5
{
public Prac5() { //Not sure why, but my lecturer says it should be like this
}
public static void main(String[] args) {
int circleNum;
float radius=0;
float big=0;
Scanner scan =new Scanner(System.in);
Scanner rad =new Scanner(System.in);
System.out.print("Enter the number of circles: ");
circleNum = scan.nextInt();
for(int i=1; i<circleNum;i++)
{
Prac4 circle1 = new Prac4(); //Trying to call in the other class
System.out.printf("Enter the circle %d radius: ", i);
circle1.setRadius(radius);
System.out.printf("The radius is: %f", rad);
double area = circle1.calcArea(radius); //This is where the error occurs, the .calcArea is highlighted
if (big<area)
{
big = area;
}
}
System.out.printf("The biggest area is: %f",big);
}
}
我已经宣布该区域为双重思维它会起作用,因为calcArea是一个双重的,当我尝试将所有内容保持为float或double时出现错误。我还是java的新手,所以也许有些东西我不见了?
编辑:完整错误 - Prac4类中的方法calcArea不能应用于给定类型; 必需:没有参数 发现:浮动 原因:实际和正式的参数列表长度不同
答案 0 :(得分:3)
此次电话
double area = circle1.calcArea(radius);
与Prac4类中定义的方法不匹配,后者不带参数:
public double calcArea()
将其更改为:
double area = circle1.calcArea();
您不必将radius
传递给calcArea()
,因为您已经将setRadius
传递给circle1.setRadius(radius);
- circle1
- 将半径存储在{{1}}中{{1}}实例。
答案 1 :(得分:1)
从我所看到的情况来看,你打电话给我:double area = circle1.calcArea(radius);
但你有这个:public double calcArea() {
,也就是说,你的calcArea
没有接受任何参数。像这样调用它:double area = circle1.calcArea();
应该解决问题。