Autor Tema: Ejercicio (CU00673B) atributos de clase estáticos en Java (static y final)  (Leído 4471 veces)

Dan_SB

  • Avanzado
  • ****
  • Mensajes: 273
  • *<DanielsCK>*
    • Ver Perfil
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:
Código: [Seleccionar]
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:
Código: [Seleccionar]
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:



¿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.

Código: [Seleccionar]
public void setNumeroPi(double pi){
        final double numeropi = pi;
    }

Saludos
« Última modificación: 12 de Abril 2015, 12:11 por Alex Rodríguez »
"Luchar por tus sueños y cumplirlos... eso es vivir.."

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Ejercicio (CU00673B), static, final en Java (palabras clave).
« Respuesta #1 en: 10 de Abril 2015, 20:56 »
Hola Dan

Ejercicio correcto. Y el main con su menú. OK

La respuesta:
Citar
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

Dan_SB

  • Avanzado
  • ****
  • Mensajes: 273
  • *<DanielsCK>*
    • Ver Perfil
Re:Ejercicio (CU00673B), static, final en Java (palabras clave).
« Respuesta #2 en: 10 de Abril 2015, 21:19 »
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!!!
"Luchar por tus sueños y cumplirlos... eso es vivir.."

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".