Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Pasandav en 02 de Noviembre 2015, 16:35

Título: forma de elevar un número al cuadrado u otra potencia en Java CU00673B
Publicado 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:

Código: [Seleccionar]
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:

Código: [Seleccionar]
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));
    }
}
Título: Re:forma de elevar un número al cuadrado u otra potencia en Java CU00673B
Publicado por: Mario R. Rancel en 04 de Noviembre 2015, 09:27
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
Título: Re:forma de elevar un número al cuadrado u otra potencia en Java CU00673B
Publicado por: Pasandav en 04 de Noviembre 2015, 09:31
Joer!! Me está costando lo de los nombrecitos de clases y métodos!! :o

Muchas gracias por la respuesta!!

Un saludo.