Autor Tema: Ejercicio CU00673B static final java atributos de clase estaticos constantes  (Leído 4390 veces)

Enzo

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 82
    • Ver Perfil
Hola,

Adjunto el código del ejercicio del tema "CU00673B static final java atributos de clase estaticos constantes ejemplos" para correcciones.

Código: [Seleccionar]
// EJERCICIO DE UTILIZACIÓN DE ATRIBUTOS DE CLASE ESTATICOS Y CONSTANTES
// ----> CU00673B static final java atributos de clase estaticos constantes ejemplos.pdf
// OPCION 1. USANDO EL METODO SET PARA RECOGER VALOR DE RADIO Y DESPUES METODOS DE CALCULO

// 01. OBJETO CIRCULO
public class Circulo1_CU00673B {
   
    // Inicialización de Atributos
    private static final double PI = 3.1416; // Inicialización de una Constante
    private double radio; // Inicialización de una variable para el radio
   
    // Conmstructor
    public Circulo1_CU00673B() {
        // Constructor Vacio
    } // Fin del Constructor
   
    // Método para establecer el radio
    public void setradio (double valorRadio) {
        radio = valorRadio;
    } //Cierre del método para establecer el radio
   
    // Método para obtener el radio
    public double getRadio () { return radio; } //Cierre del método para obtener el radio
   
    // Método para obtener PI
    public double getPI () { return PI; } //Cierre del método para obtener PI
       
    // Método para clacular el área del círculo
    public void areaCirculo () {
        // Se inicializa una3,1416 variable del método para recoger el resultado del calculo del Área del Circulo
        double resultadoAreaCirculo = PI * (radio*radio);
        System.out.println("El area del circulo es: " + resultadoAreaCirculo);
    } // Cierre del método para clacular el área del círculo
   
    // Método para clacular la longitud del círculo
    public void longitudCirculo () {
         // Se inicializa una variable del método para recoger el resultado del calculo de la longitud del Circulo
        double resultadolongitudCirculo = (2 * PI) * radio;
        System.out.println("El area del circulo es: " + resultadolongitudCirculo);
    } // Cierre del método para clacular la longitud del círculo
   
} // Cierre de la clase

Código: [Seleccionar]
// EJERCICIO DE UTILIZACIÓN DE ATRIBUTOS DE CLASE ESTATICOS Y CONSTANTES
// ----> CU00673B static final java atributos de clase estaticos constantes ejemplos.pdf
// OPCION 1. USANDO EL METODO SET PARA RECOGER VALOR DE RADIO Y DESPUES METODOS DE CALCULO

// 02. TEST DE CALCULO DE DEL ÁREA Y LONGITUD DEL CÍRCULO
import java.util.Scanner; //Importación de la clase Scanner para intro valores por teclado

public class TestCirculo1_CU00673B {

    public static void main (String [ ] Args) {

        // Campos de la clase
        String crearMas = "N"; // Inicialización de una Variable para ver si se quiere volver a crear otro círculo
        double valorRadio = 0.0; // Inicialización de una Variable para recoger el valor del radio
        Scanner entradaScaner = new Scanner (System.in); // Creación del objeto Scanner para introducir los números
        Circulo1_CU00673B circulo = new Circulo1_CU00673B(); // Se crea un Objeto Círculo

        // Mensaje de Comienzo del Programa
        System.out.println("Hola. Vamos a comenzar a crear círculos.");

        // Bucle que se repite mientras se conteste "si" a crear otro círculo
        do {
           
            // Preguntar el radio del círculo
            System.out.print("Por favor, introduzca el radio del círculo :");
            // Se convierte el valor introducido de String a double
            valorRadio = Double.valueOf(entradaScaner.nextLine());
           
            // Se realiza los llamamientos a los métodos de la clase Circulo_CU00673B
            // Llamamiento para recoger el valor del radio
            circulo.setradio(valorRadio);
            // Llamamiento para calcular el área y mostrarlo por pantalla
            circulo.areaCirculo();
            // Llamamiento para calcular la longitud y mostrarlo por pantalla
            circulo.longitudCirculo();
           
            // Preguntar si se quiere volver a jugar
            System.out.print("¿Quiere volver a jugar? S/N :");
            crearMas = entradaScaner.nextLine();

            // Bucle para comprobar que solo se responde "S" o "N"
            while(!crearMas.equalsIgnoreCase("s") && !crearMas.equalsIgnoreCase("n")){
                System.out.print("Respuesta invalida. Introduzca S o N :");
                crearMas = entradaScaner.nextLine();
            }
           
            // Se imprime una línea en blanco
            System.out.println("");

        } while (crearMas.equalsIgnoreCase("s")); // Fin del Do...While porque se ha contestado que no se quiere crear otro círculo
       
        // Mensaje de finalización del programa
        System.out.println("FIN. Muchas Gracias.");
       
    } // Cierre del main

} // Cierre de la clase

Espero vuestros comentarios,

Muchas Gracias,

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:Ejercicio CU00673B static final java atributos de clase estaticos constantes
« Respuesta #1 en: 06 de Noviembre 2015, 01:02 »
Hola Enzo.

Según el enunciado del ejercicio los métodos areaCirculo() y longitudCirculo() deben de ser de tipo función, y tu los creaste de tipo procedimiento.
Te dejo el enlace por si necesitas refrescar un poco la memoria sobre este tema, http://aprenderaprogramar.es/index.php?option=com_content&view=article&id=430:metodos-en-java-tipo-procedimiento-void-y-tipo-funcion-return-definicion-invocacion-cu00624b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188

Y acuérdate también de responder a la pregunta del ejercicio.

¿Es posible crear un método en la clase Circulo para establecer el valor de numeroPi? ¿Por qué?

Saludos.

Enzo

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 82
    • Ver Perfil
Re:Ejercicio CU00673B static final java atributos de clase estaticos constantes
« Respuesta #2 en: 06 de Noviembre 2015, 17:18 »
Hola Pedro,

OK. Tienes Razón. No me había fijado.

Aquí dejo el código corregido:

Código: [Seleccionar]
// EJERCICIO DE UTILIZACIÓN DE ATRIBUTOS DE CLASE ESTATICOS Y CONSTANTES
// ----> CU00673B static final java atributos de clase estaticos constantes ejemplos.pdf
// OPCION 1. USANDO EL METODO SET PARA RECOGER VALOR DE RADIO Y DESPUES METODOS DE CALCULO

// 01. OBJETO CIRCULO
public class Circulo1_CU00673B {
   
    // Inicialización de Atributos
    private static final double PI = 3.1416; // Inicialización de una Constante
    private double radio; // Inicialización de una variable para el radio
   
    // Conmstructor
    public Circulo1_CU00673B() {
        // Constructor Vacio
    } // Fin del Constructor
   
    // Método para establecer el radio
    public void setradio (double valorRadio) {
        radio = valorRadio;
    } //Cierre del método para establecer el radio
   
    // Método para obtener el radio
    public double getRadio () { return radio; } //Cierre del método para obtener el radio
   
    // Método para obtener PI
    public double getPI () { return PI; } //Cierre del método para obtener PI
       
    // Método para clacular el área del círculo
    public double getAreaCirculo () {
        // Se inicializa una3,1416 variable del método para recoger el resultado del calculo del Área del Circulo
        double resultadoAreaCirculo = PI * (radio*radio);
        return resultadoAreaCirculo;
    } // Cierre del método para clacular el área del círculo
   
    // Método para clacular la longitud del círculo
    public double getLongitudCirculo () {
         // Se inicializa una variable del método para recoger el resultado del calculo de la longitud del Circulo
        double resultadolongitudCirculo = (2 * PI) * radio;
        return resultadolongitudCirculo;
    } // Cierre del método para clacular la longitud del círculo
   
} // Cierre de la clase

Código: [Seleccionar]
// EJERCICIO DE UTILIZACIÓN DE ATRIBUTOS DE CLASE ESTATICOS Y CONSTANTES
// ----> CU00673B static final java atributos de clase estaticos constantes ejemplos.pdf
// OPCION 1. USANDO EL METODO SET PARA RECOGER VALOR DE RADIO Y DESPUES METODOS DE CALCULO

// 02. TEST DE CALCULO DE DEL ÁREA Y LONGITUD DEL CÍRCULO
import java.util.Scanner; //Importación de la clase Scanner para intro valores por teclado

public class TestCirculo1_CU00673B {

    public static void main (String [ ] Args) {

        // Campos de la clase
        String crearMas = "N"; // Inicialización de una Variable para ver si se quiere volver a crear otro círculo
        double valorRadio = 0.0; // Inicialización de una Variable para recoger el valor del radio
        Scanner entradaScaner = new Scanner (System.in); // Creación del objeto Scanner para introducir los números
        Circulo1_CU00673B circulo = new Circulo1_CU00673B(); // Se crea un Objeto Círculo

        // Mensaje de Comienzo del Programa
        System.out.println("Hola. Vamos a comenzar a crear círculos.");

        // Bucle que se repite mientras se conteste "si" a crear otro círculo
        do {
           
            // Preguntar el radio del círculo
            System.out.print("Por favor, introduzca el radio del círculo : ");
            // Se convierte el valor introducido de String a double
            valorRadio = Double.valueOf(entradaScaner.nextLine());
           
            // Se realiza el llamamiento al método de la clase Circulo_CU00673B para recoger el valor del radio
            circulo.setradio(valorRadio);
           
            // Se muestran los datos por pantalla realizando un llamamiento a la función con la formula
            // Se realiza un llamamiento al método getAreaCirculo de la clase Circulo_CU00673B para calcular el área
            System.out.println("El area del circulo es: " + circulo.getAreaCirculo());
            // Se realiza un llamamiento al método getLongitudCirculo de la clase Circulo_CU00673B para calcular la longitud
            System.out.println("El area del circulo es: " + circulo.getLongitudCirculo());
           
            // Preguntar si se quiere volver a jugar
            System.out.print("¿Quiere volver a jugar? S/N :");
            crearMas = entradaScaner.nextLine();

            // Bucle para comprobar que solo se responde "S" o "N"
            while(!crearMas.equalsIgnoreCase("s") && !crearMas.equalsIgnoreCase("n")){
                System.out.print("Respuesta invalida. Introduzca S o N :");
                crearMas = entradaScaner.nextLine();
            }
           
            // Se imprime una línea en blanco
            System.out.println("");

        } while (crearMas.equalsIgnoreCase("s")); // Fin del Do...While porque se ha contestado que no se quiere crear otro círculo
       
        // Mensaje de finalización del programa
        System.out.println("FIN. Muchas Gracias.");
       
    } // Cierre del main

} // Cierre de la clase

Respuesta a la pregunta: Creo que no es posible crear un método para establecer el valor de numeroPi porque es un atributo definido como estático y constante en la cabecera de la clase y si se trata de incluir en un método dará error.

Respecto al error que tenia en el código me surge una duda:
Salvo que estaba solicitado así en el enunciado del ejercicio ¿hay algún problema en haberlo escrito con métodos de tipo procedimiento en vez de tipo función?

Muchas Gracias,

Un Saludo,

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:Ejercicio CU00673B static final java atributos de clase estaticos constantes
« Respuesta #3 en: 07 de Noviembre 2015, 12:07 »
Hola Enzo.

El ejercicio ahora esta perfecto. Y sobre la pregunta decir que también esta bien contestada.

En cuanto a tu duda, no es que estuviera mal, en tu anterior ejercicio, no usabas el atributo radio de la clase circulo, sino que le enviabas tu un radio por lo cual no formaba parte del objeto circulo que habías creado.

De todas formas esto si que sería mejor que alguien mas experto lo pudiera explicar, yo solo conseguiría liarte.  :-X

Saludos.

Enzo

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 82
    • Ver Perfil
Re:Ejercicio CU00673B static final java atributos de clase estaticos constantes
« Respuesta #4 en: 07 de Noviembre 2015, 17:53 »
Hola Pedro,

OK.

Muchas Gracias,

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Ejercicio CU00673B static final java atributos de clase estaticos constantes
« Respuesta #5 en: 07 de Noviembre 2015, 21:41 »
Hola

Citar
Respecto al error que tenia en el código me surge una duda:
Salvo que estaba solicitado así en el enunciado del ejercicio ¿hay algún problema en haberlo escrito con métodos de tipo procedimiento en vez de tipo función?

Respuesta: normalmente un método que calcula algo es tipo función, de esa manera lo invocamos y obtenemos la respuesta que podemos manejar en otro contexto. En muchas ocasiones es preferible usar funciones, incluso si queremos mostrar algo por pantalla podemos usar una función que nos devuelva el String a mostrar, y luego usar ese String. Disponer de un resultado nos será útil, así podremos manipular el resultado (por ejemplo hacer una traducción automática a otro idioma).

Ejemplo: System.out.println ("El resultado del cálculo es "+ miObjeto.hacerCalculo() );

Si hacerCalculo no devolviera algo no podríamos hacer esto.

Realmente no es simplemente para hacer System.out.println, es para muchas más cosas para lo que sirve, esto se va entendiendo a medida que se va progresando como programadores, poco a poco

Saludos

Enzo

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 82
    • Ver Perfil
Re:Ejercicio CU00673B static final java atributos de clase estaticos constantes
« Respuesta #6 en: 09 de Noviembre 2015, 15:39 »
Hola Alex,

Creo que lo tengo claro.

Muchas Gracias,

Un Saludo,

 

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