Domanda

quindi ho creato una classe circolare che imposta il raggio e dovrei generare il raggio, la circonferenza e l'area, tuttavia, se inserisco il raggio, il raggio, la circonferenza, l'area non verranno restituiti, viene visualizzato solo come 0,0 ecco il mio 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;
    }

}

ed heres circledemo.java http://pastie.org/466414 la formattazione non è venuta bene qui

Per prima cosa inserisco il raggio, ma quando chiamo getRadius, circonferenza, area, genera solo 0,0

È stato utile?

Soluzione

Esaminiamo l'esecuzione del programma, passo dopo passo. Innanzitutto, inizializzare alcune variabili e quindi creare un oggetto Scanner. Successivamente, inserisci un ciclo while . All'interno di quel ciclo while, visualizzi il menu principale, leggi l'input dalla tastiera, crea un nuovo oggetto Circle , quindi gestisci l'input che hai ricevuto. E continui a farlo fino a quando flag è impostato su false , nel qual caso il programma termina.

Noti qualcosa di strano qui?

Una variabile esiste solo all'interno dell'ambito in cui è stata dichiarata e l'oggetto Circle è stato dichiarato dentro nel ciclo while. Ricorda, il corpo di un ciclo while rappresenta una iterazione di un ciclo while . Quindi, in sostanza, l'oggetto Circle viene ricreato più e più volte, motivo per cui setRadius () non ha alcun effetto.

Altri suggerimenti

Crea l'istanza dell'oggetto Circle (ovvero il codice Circle one = new Circle ()) ESTERNO del ciclo while. Ogni iterazione del ciclo fa sì che l'oggetto venga ricreato con un nuovo stato (cioè nuovo raggio).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top