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

Consejos para menu (por consola) y orientado a objetos.

Estas en el tema de Consejos para menu (por consola) y orientado a objetos. en el foro de Java en Foros del Web. Saludos a todos. Estoy aprendiendo el lenguaje y tengo algunas interrogantes, busque en google, revise buscando en el foro y no encuentro la respuesta que ...
  #1 (permalink)  
Antiguo 23/05/2009, 16:09
 
Fecha de Ingreso: mayo-2009
Mensajes: 4
Antigüedad: 15 años
Puntos: 0
Consejos para menu (por consola) y orientado a objetos.

Saludos a todos.

Estoy aprendiendo el lenguaje y tengo algunas interrogantes, busque en google, revise buscando en el foro y no encuentro la respuesta que busco.

Cosas para tener en cuenta:

Conosco AnsiC, de modo que de manera "estructurada", trabajando dentro del main se hacerlo... me confundo con la orientación a objetos y a una buena representación de las clases.

Preguntas:

1.- En un programa cualquiera (por terminal) un menu se considera un objeto? debo crearlo como otra clase o como un metodo?. Me imagino que parte de la respuesta es... "depende de lo que quiera hacer"... existe una forma mas correcta que otra? (imaginense un juego, una calculadora, etc)

2.- Trato de imaginarme el menu como algo de la vida cotidiana. Según mi perspectiva un menu es como un mueble con muchos cajones. Esta bien relacionada esta analogía? los cajones que representan? nuevos objetos? métodos?.

Código de menu, creado por mi... hay varias cosas que no entiendo.

Código PHP:
import java.util.*;

class 
Menu
{
int opciones;
static 
Scanner leer = new Scanner(System.in);
public 
int menu()
{
System.out.println("Menu por consola");
System.out.println("1.- Opcion1");
System.out.println("2.- Opcion2");
System.out.println("3.- Opcion3");
System.out.println("Comandos: "//Pretendo que el usuario escriba el numero de  opcion
opciones=leer.nexInt();
return 
opciones;
}
}
class 
programa
{
public static 
void main(String[] args)
{
Menu Inicio = new Menu();
Inicio.menu()
}

Dudas:
1.- Esta bien planteado el programa?
2.- Una vez que el usuario ingresa la opcion, que debo hacer? crear metodos? clases?
3.- Podrías "completar" un poco el codigo para entender la orientación a objeto (quizás no es ni necesaria, la OOP).?
4.- Que clase me permite hacer uso de las flechas del teclado (para un menu de un juego, como Street Figther o Megaman)(Siempre programando por consola nada de entorno grafico todavia)

PD: Entiendo que podría hacer todo con un switch dentro del main, pero no es lo que busco, pretendo entender la orientación a objetos y estoy aburriéndome de todos los manuales que estoy leyendo.

Espero no se me quede nada por preguntar... cualquier respuesta estaría completamante agradecido, espero criticas, comentarios y consejos.

Muchas Gracias.

Un abrazo
  #2 (permalink)  
Antiguo 24/05/2009, 00:04
Avatar de Gguer  
Fecha de Ingreso: abril-2009
Mensajes: 125
Antigüedad: 15 años
Puntos: 1
Respuesta: Consejos para menu (por consola) y orientado a objetos.

Pues yo no tomaría a un menú estrictamente como un objeto, sólo es el medio que te permite la entrada y salida de datos. las opciones representan el medio para llegar al objeto, no el objeto en sí. Generalmente se crea en el main.
Sí puedes usar el switch para que en cada opción crees una referencia (objeto) de la clase que representa la opción seleccionada.

la clase representa a un objeto, una abstracción de la realidad. Un objeto de una clase es la referencia que se crea de ella para acceder a sus métodos y atributos desde otras clases.

Tus dudas.
1. Pues como te digo, el menú puede quedar dentro del main.
2.

Código :
Ver original
  1. import java.util.*;
  2.  
  3. class Menu
  4. {
  5. public static void main(String[] args)
  6. {
  7. int opciones;
  8. Scanner leer = new Scanner(System.in);
  9. Opcion1 op1=null;
  10. Opcion2 op2=null;
  11. Opcion3 op3=null;
  12.  
  13. System.out.println("Menu por consola");
  14. System.out.println("1.- Opcion1");
  15. System.out.println("2.- Opcion2");
  16. System.out.println("3.- Opcion3");
  17. System.out.println("Comandos: ") //Pretendo que el usuario escriba el numero de  opcion
  18. opciones=leer.nexInt();
  19.  
  20. switch(opciones) {
  21. case 1:
  22. op1=new Opcion1();
  23. op1.ejecutaMetodo();
  24. break;
  25.  
  26. case 2:
  27. op2=new Opcion2();
  28. op2.ejecutaMetodo();
  29. String variable = op1.variableOpcion1;
  30. break;
  31.  
  32. case 3:
  33. op3=new Opcion3();
  34. op3.ejecutaMetodo();
  35. break;
  36. }
  37. }

Creo que si estudias lo que es herencia, sobrecarga y sobrescritura de métodos, encapsulación, poliformismo, podrá quedarte más claro lo que es estye paradigma de programación.

Espero haber aclarado un poco tu panorama.
Saldudos

Última edición por Gguer; 24/05/2009 a las 00:59
  #3 (permalink)  
Antiguo 24/05/2009, 11:43
 
Fecha de Ingreso: mayo-2009
Mensajes: 4
Antigüedad: 15 años
Puntos: 0
Respuesta: Consejos para menu (por consola) y orientado a objetos.

Clarisimo kipersonic0, te agradesco muchisimo el post y por sobre todo a atender las preguntas de la manera que te las planteo.

Disculpa las molestia y reitero muchisimas gracias por el codigo.

Un abrazo.
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 15:57.