Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Dan_SB en 10 de Abril 2015, 03:13
-
Buenas noches
Resuelvo el ejercicio del capitulo 73° del curso, el enunciado es así:
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.
Okay, aqui vamos:
Clase Cirlulo:
package APR;
public class Circulo {
static final double numeroPi = 3.1416;
private double radio;
public Circulo(double rad){
radio = rad;
}
public void setRadio(double rad){
radio = rad;
}
public double getRadio(){
return radio;
}
public double calcularAreaCirculo(){
double area = Math.pow(radio, 2) * numeroPi;
return area;
}
public double calcularLongitudCirculo(){
double longitud = 2 * numeroPi * radio;
return longitud;
}
}
Clase main:
package APR;
import java.util.Scanner;
public class Main {
public static void main(String[]args){
Scanner in = new Scanner(System.in);
double rad; boolean salir = false; int opcion;
System.out.print("Bienvenido!! introduzca el radio del circulo: ");
rad = in.nextDouble();
Circulo circulo = new Circulo(rad);
while(salir == false){
System.out.println("Para saber el area del circulo, ingrese 1.");
System.out.println("Para saber la longitud del circulo, ingrese 2.");
System.out.println("Para salir, ingrese 3.");
opcion = in.nextInt();
switch(opcion){
case 1:
System.out.println("El area del circulo es: " + circulo.calcularAreaCirculo());
break;
case 2:
System.out.println("La longitud del circulo es: " + circulo.calcularLongitudCirculo());
break;
case 3:
System.out.println("Adios!");
salir = true;
break;
default:
System.out.println("Caracter desconocido, intente de nuevo.");
break;
}
}
}
}
Ejecución del programa:
(http://i.imgur.com/VQxUm2u.png)
¿Es posible crear un método en la clase Circulo para establecer el valor de numeroPi? ¿Por qué?
No. Porque el static no se puede declarar en un método. Solo cabecera. Lo unico valido es el final.
public void setNumeroPi(double pi){
final double numeropi = pi;
}
Saludos
-
Hola Dan
Ejercicio correcto. Y el main con su menú. OK
La respuesta:
No. Porque el static no se puede declarar en un método. Solo cabecera. Lo unico valido es el final.
Es cierta. Tal como dices no se puede declarar una variable static en un método.
Pero la pregunta era si se puede crear un método (setter) para modificar el valor de numeroPi.
Y la respuesta sigue siendo 'No' porque la palabra clave 'final' convierte el valor en 'constante' que por definición no se puede modificar.
Saludos
-
Pense que la pregunta era que si se podia crear un metodo para establecer el valor. Me imagino que con ese codigo que deje, solo se podria establecer 1 sola vez y no mas...
No tendria sentido si fuera asi, bueno!! Gracias toni!!!