Pergunta

Então eu fiz uma classe círculo que define o raio, e deve saída o raio, a circunferência ea área no entanto, se a entrada i o raio, o raio, circunferência, área não vai saída para trás, isso só mostra como 0.0 heres minha 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;
    }

}

e heres circledemo.java http://pastie.org/466414 Formatação não precisava sair bem aqui

input Primeiro eu o raio, mas quando eu chamar getRadius, circunferência, área, ele só produz 0,0

Foi útil?

Solução

Vamos caminhada através da execução do programa, passo a passo. Primeiro, você inicializar algumas variáveis ??e, em seguida, criar um objeto de Scanner. Em seguida, você entra em um loop while. Dentro desse loop while, você exibir o menu principal, leia a entrada do teclado, criar um novo objeto Circle , e depois lidar com a entrada recebida. E você continuar fazendo isso até flag está definido para false, caso em que a saída do programa.

nada Aviso estranho aqui?

Uma variável só existe dentro do escopo foi declarado, e seu objeto Circle foi declarado dentro o loop while. Lembre-se, o corpo de um loop while representa uma iteração de um loop while . Assim, essencialmente, o seu objeto Circle está sendo recriada uma e outra vez, e é por isso setRadius() está tendo nenhum efeito.

Outras dicas

Criar a instância do objeto Circle (isto é, o código Círculo one = new Circle ()) fora do loop while. Cada iteração do circuito é fazendo com que o objecto a ser recriado com novo estado (isto é novo raio).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top