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
?后者是正确的。