Java 方法sqrt在eclipse中未定义?

Java 方法sqrt在eclipse中未定义?,java,sqrt,Java,Sqrt,我正在为一个学校作业做一个课程,我们试图使用接口/可比性,一个名为shape的根类被用来定义其他形状类,如矩形、圆、梯形等。我遇到的问题是在尝试创建梯形类时使用平方根方法和幂法 我想做的是得到一个梯形的第三面和第四面,因为这些都是规则的梯形,我可以取变量side1(梯形的顶面),从side2(梯形的底面)中减去它,把它除以两个s,每边都有我要创建的直角三角形的下半部分,然后用毕达哥拉斯定理得到令人讨厌的第三边 问题是,每次我试图运行平方根(sqrt)或幂(pow)方法来实现这一点时,eclips

我正在为一个学校作业做一个课程,我们试图使用接口/可比性,一个名为shape的根类被用来定义其他形状类,如矩形、圆、梯形等。我遇到的问题是在尝试创建梯形类时使用平方根方法和幂法

我想做的是得到一个梯形的第三面和第四面,因为这些都是规则的梯形,我可以取变量side1(梯形的顶面),从side2(梯形的底面)中减去它,把它除以两个s,每边都有我要创建的直角三角形的下半部分,然后用毕达哥拉斯定理得到令人讨厌的第三边

问题是,每次我试图运行平方根(sqrt)或幂(pow)方法来实现这一点时,eclipse都会给我一个错误,说“梯形类型的方法sqrt(double)未定义”,我不知道我在这方面缺少了什么,所以希望您能提供帮助

我的守则如下:

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(...);