Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Pasandav en 02 de Noviembre 2015, 16:35
-
Pongo mi solución al ejercicio CU00673B.
Solo comentar que para la fórmula en la que hay que elevar un nº al cuadrado. Busqué en las clases de Java y encontré el método pow de la clase math. Supongo que no estará mal utilizarlo para el ejemplo.
A la pregunta: ¿Es posible crear un método en la clase Circulo para establecer el valor de numeroPi? ¿Por qué?
No no es posible, devuelve el error de compilación: "cannot assign a value to final variable numeroPi". No lo permite al ser una constante y tener un valor fijo al declararse con 'final'.
Gracias y espero opinión:
Clase Circulo:
import java.lang.Math;
/**
* Clase circulo que calcula el Area y Longitud recibiendo como parametro el radio.
* @author (Pasandav)
* @version (1.0)
*/
public class Circulo
{
private static final double numeroPi = 3.1416;
private double radio;
// Constructor
public Circulo() { radio = 0;}
public void setRadio (double radio){ this.radio = radio; }
public double getRadio (){ return this.radio; }
public double areaCirculo(double radio){
double areaCirculo = numeroPi * Math.pow( radio, 2);
return areaCirculo;
} // Fin del método areaCirculo.
public double longitudCirculo(double radio){
double longitudCirculo = numeroPi * (radio * 2);
return longitudCirculo;
} // Fin del método longitudCirculo.
} // fin de la clase Circulo.
Clase del Main:
import java.util.Scanner;
/**
* Write a description of class TestCirculo here.
*
* @author (David Martinez)
* @version (a version number or a date)
*/
public class TestCirculo
{
public TestCirculo(){ }
public static void main (String []args){
Circulo miCirculo = new Circulo ();
Scanner teclado = new Scanner(System.in);
System.out.println("Introduce radio del circulo");
double radio = Double.parseDouble (teclado.nextLine());
System.out.println(" Un circulo con radio " + radio + " tiene un area de " + miCirculo.areaCirculo(radio) + " y una longitudo de " + miCirculo.longitudCirculo(radio));
}
}
-
Hola Pasandav
Tu ejercicio está bien resuelto, todo bien, tanto el código como la respuesta a las preguntas. Usar la clase Math también es correcto si bien en este caso no era estrictamente necesario. Una recomendación: intenta usar nombres de métodos que describan lo que hace el método usando un verbo, por ejemplo getRadio usa el verbo get (aunque sea en inglés, sería "conseguir" u "obtener"). Por eso para el método que devuelve el área del círculo podrías usar getAreaCirculo u obtenerAreaCirculo y lo mismo para la longitud del círculo.
Saludos
-
Joer!! Me está costando lo de los nombrecitos de clases y métodos!! :o
Muchas gracias por la respuesta!!
Un saludo.