Pregunta

así que hice una clase de círculo que establece el radio, y debería emitir el radio, la circunferencia y el área, sin embargo, si ingreso el radio, el radio, la circunferencia, el área no se devolverán, solo se muestra como 0.0 heres my Circle.java

public class Circle
{
    private double radius;
    private double PI = 3.14159;

    public void setRadius(double rad)
    {
            radius = rad;
    }

    public double getRadius()
    {
            return radius;
    }

    public double getArea()
    {
            return PI * radius * radius;
    }

    public double getDiameter()
    {
            return 2 * radius;
    }

    public double getCircumference()
    {
            return 2 * PI * radius;
    }

}

y heres circledemo.java http://pastie.org/466414 -El formateo no salió bien aquí

Primero ingreso el radio, pero cuando llamo getRadius, circunferencia, área, solo genera 0.0

¿Fue útil?

Solución

Pasemos por la ejecución del programa, paso a paso. Primero, inicializa algunas variables y luego crea un objeto Scanner. Luego, ingresa un bucle while . Dentro de ese ciclo while, muestra el menú principal, lee la entrada del teclado, crea un nuevo objeto Circle y luego maneja la entrada que recibió. Y sigue haciendo eso hasta que flag esté configurado en false , en cuyo caso el programa se cerrará.

¿Notas algo extraño aquí?

Sólo existe una variable dentro del ámbito en el que se declaró, y su objeto Circle se declaró dentro del bucle while. Recuerde, el cuerpo de un ciclo while representa una iteración de un ciclo while . Entonces, esencialmente, su objeto Circle se está recreando una y otra vez, por lo que setRadius () no está teniendo efecto.

Otros consejos

Cree la instancia del objeto Circle (es decir, el código Circle one = new Circle ()) FUERA del ciclo while. Cada iteración del bucle hace que el objeto se vuelva a crear con un nuevo estado (es decir, un nuevo radio).

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