funções círculo não se comportar conforme o esperado no Java Class
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
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).