Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/02/2013, 06:01
Avatar de rgf1987
rgf1987
 
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 12 años
Puntos: 22
Respuesta: Métodos estaticos - Problema

El compilador dice que la variable api no esta siendo utilizada porque efectivamente, no se utiliza fijate que posteriormente a esa linea la variable api no vuelve a aparecer en el código y por lo tanto se genera esa advertencia

Probablemente los escritores del libro se equivocasen y esa linea sobra por lo tanto quedaría así:

Código Java:
Ver original
  1. public class NúmeroPI{
  2.         public static double dameValorPI(int nDecimales){
  3.             double pi=0, pi2=0;
  4.             int n=0;
  5.             double epsilon=1/Math.pow(10, nDecimales);
  6.             System.out.println("Epsilon= "+epsilon);
  7.            
  8.             do{
  9.                 pi2=pi;
  10.                 pi+=Math.pow(-1, n)/(2*n+1);
  11.                 n++;
  12.             }while(Math.abs(4*pi-4*pi2)>epsilon);
  13.            
  14.             return 4*pi;
  15.         }
  16.        
  17.         public static void main(String args[]){      
  18.             //Desaparece la línea que estaba aquí
  19.             int nDecimales=6;
  20.             double pI=dameValorPI(nDecimales);
  21.             System.out.printf("El número PI con %d decimales es %8.6f\n", nDecimales, pI);
  22.         }
  23.     }

O que se olvidasen de hacer la llamada a través del objeto, por lo tanto quedaría así:

Código Java:
Ver original
  1. public class NúmeroPI{
  2.         public static double dameValorPI(int nDecimales){
  3.             double pi=0, pi2=0;
  4.             int n=0;
  5.             double epsilon=1/Math.pow(10, nDecimales);
  6.             System.out.println("Epsilon= "+epsilon);
  7.            
  8.             do{
  9.                 pi2=pi;
  10.                 pi+=Math.pow(-1, n)/(2*n+1);
  11.                 n++;
  12.             }while(Math.abs(4*pi-4*pi2)>epsilon);
  13.            
  14.             return 4*pi;
  15.         }
  16.        
  17.         public static void main(String args[]){      
  18.             NúmeroPI api=new NúmeroPI(); //Se crea un objeto de tipo NúmeroPI y se almacena en la variable api.
  19.             int nDecimales=6;
  20.             double pI=api.dameValorPI(nDecimales); //Se llama al método perteneciente al objeto declarado anteriormente
  21.             System.out.printf("El número PI con %d decimales es %8.6f\n", nDecimales, pI);
  22.         }
  23.     }

Evidentemente la opcion mas sencilla es la primera, aquí no es necesario crear ningun objeto para nada