Foros del Web » Programación para mayores de 30 ;) » Java »

error de llamado a clase

Estas en el tema de error de llamado a clase en el foro de Java en Foros del Web. hola soy nuevo programando en java y me surge la duda porque no logro que mi clase potencia se ejecute en el siguiente menú... ya ...
  #1 (permalink)  
Antiguo 05/06/2012, 01:26
 
Fecha de Ingreso: junio-2012
Mensajes: 1
Antigüedad: 11 años, 11 meses
Puntos: 0
Pregunta error de llamado a clase

hola soy nuevo programando en java y me surge la duda porque no logro que mi clase potencia se ejecute en el siguiente menú... ya intenté instanciando la misma clase y nada solo se ejcutan las demas instrucciones de dicho menú el código es el siguiente: agradecería de mucho su ayuda...
Cita:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Potencia {
public void potencia(){
int number =1;
}
public static long potenciaLoca(int base, int exponente)
{
long potencia;
if(base ==0)
potencia =0;
else
if(exponente== 0)
potencia =1;
else
potencia = base*potenciaLoca(base,exponente -1);
return(potencia);
}
public static void main(String[] args)throws NumberFormatException,IOException{
long pot;
int bas, exp;

BufferedReader dato = new BufferedReader(new InputStreamReader(System.in));

System.out.println("Teclee la base");
bas =Integer.parseInt(dato.readLine());

System.out.println("Teclee el exponente");
exp =Integer.parseInt(dato.readLine());

pot=potenciaLoca(bas,exp);
System.out.println("La potencia soliitada es: " +pot);

}
}
y el menú que debe ejecutarlo es el siguiente:
Código:
import javax.swing.*;

public class MenuRecursivo
{
	public static void main(String[] args)
	{
		String dato;
		int op;


				 do{
					 dato = JOptionPane.showInputDialog("Seleccione la opción deseada:" +
					 									" \n 1.- Factorial  " +
					 									" \n 2.- Fibonacci  " +
					 									" \n 3.- Potencia " +
					 									" \n 4.- Salir ");
			 		 op= Integer.parseInt(dato);

			 		 switch(op)
			 		 {
			 		 case 3:
			 		do{
			 			//constructor de la clase potencia
			 			JOptionPane.showMessageDialog(null,"Seleccionó la opción 3: Potencia");
			 			new Potencia();


			 			op=Integer.parseInt(JOptionPane.showInputDialog("Desea realizar otra operación? \n 1.Si \n 2.No"));
			 			//condicion que evalua el valor ingresado por el usuario.
			 			//si la opcion es menor a 1 o mayor a 2 devuelve mensaje.
			 			if(op <1 || op>2)
			 				JOptionPane.showMessageDialog(null,"La opción solicitada no es válida," +
															"\n regresará al menú anterior");

			 		}while(op!=2);
			 		break;

			 		default:
			 			//si el usuario no cumple con la condicion establecida, devolverá mensaje informativo y el valor cero.
			 			if(op <1 || op>4)
			 			JOptionPane.showMessageDialog(null,"La opción solicitada no es válida," +
			 												"\n favor de volver a intentarlo");
			 		}
				  }while(op!=4);
				  	//al seleccionar la opcion marcada el programa cerrará satisfactoriamente
			 		JOptionPane.showMessageDialog(null,"Ha salido satisfactoriamente del programa");
			 }
		 }
he eliminado las deás instrucciones porque funcionan sin problemas....
  #2 (permalink)  
Antiguo 05/06/2012, 02:27
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: error de llamado a clase

No he leído el código, pero así de primeras

Cita:
public void potencia(){
int number =1;
}
Da la impresión de que con esto pretendías hacer un constructor, y está mal. Los constructores no se declaran así, y la variable number que has creado es de ámbito local y solo existe dentro de ese método.

Además solo puedes utilizar un método main por proyecto. Repasa algún tutorial básico para ver cómo se hacen los constructores y el ámbito de las variables, si no lees un poco vas a perder mucho tiempo.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.

Etiquetas: clase, llamado, programa, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:13.