Pregunta

Estoy trabajando en una clase para una tarea escolar donde estamos tratando de usar interfaces / comparables, y se está utilizando una forma llamada la forma llamada forma para definir otras clases de forma, como rectángulos, círculos, trapezoidos, etc. El problema en el que estoy corriendo es el uso del método de raíz cuadrada y el método de alimentación al intentar hacer la clase trapezoid.

Lo que estoy tratando de hacer es obtener el tercer y 4toado de un trapezoide, y porque todos van a ser trapezoides regulares, puedo tomar el lado variable1 (el lado superior del trapezoide), reste que De lado2 (la parte inferior del trapezoide), divídalo por dos s que cada lado tiene la mitad inferior del triángulo derecho que estoy tratando de crear, y luego hacer el teorema de Pitágoras para obtener ese molesto tercero lado.

El problema es que cada vez que intento ejecutar el método de raíz cuadrada (SQRT) o POWER (POW) para preformar esto, Eclipse me está dando un error que dice que "el método SQRT (DOBLE) no está definido para el Tipo Trapezoid "No tengo ni idea de lo que me estoy perdiendo, así que cualquier ayuda sería apreciada.

El código que tengo es el siguiente:

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;
}
}

Además, la clase para la forma también es bastante pequeña, pero no puedo hacerlo ningún cambio para esta tarea:

public interface Shape {
public double area();
public double perimeter();
}

¿Fue útil?

Solución

Debe importar estadísticamente el método para usarlo como un método no calificado

import static java.lang.Math.sqrt;

o uso

double tosser = Math.sqrt(...); 

(la importación de java.lang es innecesaria ya que esas clases se importan por defecto)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top