Java 方法sqrt在eclipse中未定义?
我正在为一个学校作业做一个课程,我们试图使用接口/可比性,一个名为shape的根类被用来定义其他形状类,如矩形、圆、梯形等。我遇到的问题是在尝试创建梯形类时使用平方根方法和幂法 我想做的是得到一个梯形的第三面和第四面,因为这些都是规则的梯形,我可以取变量side1(梯形的顶面),从side2(梯形的底面)中减去它,把它除以两个s,每边都有我要创建的直角三角形的下半部分,然后用毕达哥拉斯定理得到令人讨厌的第三边 问题是,每次我试图运行平方根(sqrt)或幂(pow)方法来实现这一点时,eclipse都会给我一个错误,说“梯形类型的方法sqrt(double)未定义”,我不知道我在这方面缺少了什么,所以希望您能提供帮助 我的守则如下:Java 方法sqrt在eclipse中未定义?,java,sqrt,Java,Sqrt,我正在为一个学校作业做一个课程,我们试图使用接口/可比性,一个名为shape的根类被用来定义其他形状类,如矩形、圆、梯形等。我遇到的问题是在尝试创建梯形类时使用平方根方法和幂法 我想做的是得到一个梯形的第三面和第四面,因为这些都是规则的梯形,我可以取变量side1(梯形的顶面),从side2(梯形的底面)中减去它,把它除以两个s,每边都有我要创建的直角三角形的下半部分,然后用毕达哥拉斯定理得到令人讨厌的第三边 问题是,每次我试图运行平方根(sqrt)或幂(pow)方法来实现这一点时,eclips
import java.lang.Math;
public class Trapezoid implements Shape {
public double side1;
public double side2;
public double height;
public Trapezoid(double side1, double side2, double height){
this.side1 = side1;
this.side2 = side2;
this.height = height;
}
public double perimeter(){ //THIS IS THE METHOD CAUSING PROBLEMS!
double tosser = sqrt((((side2 - side1) / 2 *(side2 - side1) / 2) + (height*height) ) );
return (side1 + side2 + 2 * tosser );
}//end perimeter
public double area(){
return (((side1 + side2) / 2) * height);
}//end area
public String toString(){
return "The area of the trapezoid is" + area() + ".";
}//end toString
public int compareTo(Shape that){
int larger = 0;
if(this.area() > that.area())
larger = 1;
else if(this.area() < that.area())
larger = -1;
return larger;
}
}
您需要静态导入该方法以将其用作非限定方法
import static java.lang.Math.sqrt;
或使用
double tosser = Math.sqrt(...);
(从
java.lang
导入是不必要的,因为默认情况下会导入这些类)好吧……方法是否已定义?请使用Math.sqrt()
而不是简单地sqrt()
读取错误消息。或者,因为数学已经导入,所以将调用更改为Math.sqrt()
就可以了。
double tosser = Math.sqrt(...);