Buenas noches.
A continuación dejo una posible solución del ejercicio CU00673B del curso Java desde cero.
EJERCICIO
Define una clase Java denominada Circulo que tenga como atributo de clase (estático) y constante numeroPi, siendo esta constante de tipo double y valor 3.1416. Además la clase tendrá el atributo radio (tipo double) que representa el radio del círculo, y los métodos para obtener y establecer los atributos. También debe disponer de un método para calcular el área del círculo (método tipo funcion areaCirculo que devuelve el área) y la longitud del círculo (método tipo función que devuelve la longitud). Busca información sobre las fórmulas necesarias para crear estos métodos en internet si no las recuerdas. En una clase con el método main, declara el código que cree un objeto círculo, le pida al usuario el radio y le devuelva el área y la longitud del círculo.
El código de la clase "EntradaDeTeclado":
import java.util.Scanner;
public class EntradaDeTeclado{
private double entradaTeclado;
public EntradaDeTeclado(){
entradaTeclado = 0;
}
//Creamos un objeto "Scanner" de tipo "double" con el método ".nextDouble"
public void pedirEntrada(){
Scanner entradaEscaner = new Scanner(System.in);
entradaTeclado = entradaEscaner.nextDouble();
}
public double getEntrada(){
return entradaTeclado;}
}
El código de la clase "Circulo":
public class Circulo{
private static final double PI = 3.1416;
private double radio;
public Circulo(){
radio = 0;
}
public void setRadio(double valor_radio){
radio = valor_radio;
}
public double getPI(){return PI;}
public double getRadio(){return radio;}
public double getAreaCirculo(){
double areaCirculo;
areaCirculo = PI * (radio*radio);
return areaCirculo;
}
public double getLongitud(){
double longitud;
longitud = 2*PI*radio;
return longitud;
}
}
El código de la clase "AreaYLongitudDelCirculo":
public class AreaYLongitudDelCirculo{
public static void main(){
Circulo circulo = new Circulo();
EntradaDeTeclado entrada = new EntradaDeTeclado();
/*Si entramos el decimal con "." nos da error:
"java.util.InputMismatchException:
null(in java.util.Scanner)" */
System.out.print("Entra (si es número decimal con \",\" y no con \".\") el radio: ");
entrada.pedirEntrada();
//Entramos el valor del radio mediante el método "entrada.getEntrada()"
circulo.setRadio(entrada.getEntrada());
System.out.println("El area del círculo es: "+circulo.getAreaCirculo());
System.out.print("La longitud del círculo es: "+circulo.getLongitud());
}
}
¿Es posible crear un método en la clase Circulo para establecer el valor de numeroPi? ¿Por qué?
No es posible porque la el número "Pi" lo hemos declarado como una constante y no como una variable mediante la palabra clave "final".
Gracias.