Java 另一个类中的方法不能应用于给定类型

Java 另一个类中的方法不能应用于给定类型,java,Java,基本上,有两类。。。一个用于计算圆的面积,另一个用于用户输入要处理的圆的数量、每个圆的半径,然后程序将依次显示。最后,将显示最大的区域。它显示一个错误,第一个类中的方法无法应用于给定的类型 第一类: public class Prac4 { private float radius; public Prac4() { } public void setRadius(float radius) { this.radius = radius; } public float getRa

基本上,有两类。。。一个用于计算圆的面积,另一个用于用户输入要处理的圆的数量、每个圆的半径,然后程序将依次显示。最后,将显示最大的区域。它显示一个错误,第一个类中的方法无法应用于给定的类型

第一类:

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
}
}
所以Calcrea是在第二个函数中被调用的部分,用来计算圆的面积。我曾尝试将其公开,但这带来了一系列全新的错误

第二类:

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);
}
}
import java.util.*;
公共类Prac5
{
公共实践{//不知道为什么,但我的讲师说应该是这样
}
公共静态void main(字符串[]args){
内环;
浮动半径=0;
浮动大=0;
扫描仪扫描=新扫描仪(System.in);
扫描仪rad=新扫描仪(System.in);
System.out.print(“输入圈数:”);
circleNum=scan.nextInt();
对于(inti=1;i此调用

double area = circle1.calcArea(radius);
与Prac4类中定义的方法不匹配,该类不接受任何参数:

public double calcArea()
将其更改为:

double area = circle1.calcArea();
您不必将
radius
传递到
calcArea()
,因为您已经将其传递到
setRadius
此处-
circle1.setRadius(radius);
-它将半径存储在
circle1
实例中。

此调用

double area = circle1.calcArea(radius);
与Prac4类中定义的方法不匹配,该类不接受任何参数:

public double calcArea()
将其更改为:

double area = circle1.calcArea();

您不必将
radius
传递到
calcArea()
,因为您已经将其传递到
setRadius
这里-
circle1.setRadius(radius);
-它将半径存储在
circle1
实例中。

据我所见,您将其命名为:
double area=circle1.calcArea(radius)
但是你有这样一个:
public double calcArea(){
,也就是说,你的
calcArea
不带任何参数。这样调用:
double area=circle1.calcArea();
应该可以解决这个问题。

据我所见,你称之为:
double area=circle1.calcArea(radius);
但是你有这样一个:
公共双Calcrea(){
,也就是说,你的
Calcrea
不接受任何参数。这样调用:
双区域=circle1.Calcrea();
应该可以解决这个问题。

请发布你的堆栈跟踪(也就是你收到的完整错误消息)你的问题是什么?编译器错误,运行时错误?错误消息是什么?@ManuelRamírez OP获取编译器错误,而不是异常。但是,应该发布准确的错误消息。你可以使用
Math.pow
,而不必任何导入。它位于
java.lang
中,因此始终对你可用。你的Calcrea函数声明时没有pa参数,但您在调用函数时试图将
radius
作为参数传递。您不需要这样做,因为radius已经是
Prac4
类的成员。此外,您是否尝试使用
pow
Math.pow
?后者是正确的。请发布堆栈跟踪(即您收到的完整错误消息)你的问题是什么?编译器错误,运行时错误?错误消息是什么?@ManuelRamírez OP获取编译器错误,而不是异常。但是,应该发布准确的错误消息。你可以使用
Math.pow
,而不必任何导入。它位于
java.lang
中,因此始终对你可用。你的Calcrea函数声明时没有pa参数,但您在调用函数时尝试将
radius
作为参数传递。您不需要这样做,因为radius已经是
Prac4
类的成员。此外,您是否尝试使用
pow
Math.pow
?后者是正确的。