Duda Java: Usando una única clase que actúe como Interfaz de usuario

Iniciado por llvvrr, 29 Septiembre 2011, 19:13 PM

0 Miembros y 1 Visitante están viendo este tema.

llvvrr

Hola a tod@s:
Mi pregunta supongo que os resultará muy estúpida, pero soy nueva en el arte de programar y aún no tengo las cosas claras.
Simplemente querría saber si alguien me puede echar una mano con la siguiente cuestión:

Necesito escribir dos clases:
Una que será la única que podrá leer por teclado y escribir en pantalla.(PRINCIPAL.class)
Otra que realizará las operaciones.
(OPERACIONES.class)
Llegados a este punto, mi pregunta es la siguiente:


¿Cómo narices uso los métodos con parámetros de la clase operaciones en Interfaz chic@s???
:-\:-\:-\

Si alguien me puede ayudar escribiendome un peque código de las dos clases, pidiendo algo de información en Interfaz que pueda ver por consola y operando en operaciones.class se lo agradecería infinitamente...
Con un método me bastaría para entenderlo (aunque eso es mucho esperar de mi misma)...
Hasta ahora he aprendido a pedir datos y leerlos en la misma clase...pero por ejemplo no sé pedir un número por teclado en Interfaz que haya pasado como parametro en operaciones...

P.D:espero haberme explicado
Muchas gracias de antemano.
Un saludín.

Valkyr

No se si te refieres exactamente a lo que estoy pensando ya que la verdad no me he aclarado mucho con tu explicación.

Sí lo que quieres hacer es leer datos de teclado en una clase (Principal.class) y pasarselo a otra para que esta realice operaciones (Operacioes.class) entonces podrías hacer algo así:

Código (java) [Seleccionar]

public class Principal {

    public static void main(String[] args){
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        //Con esta instruccion anterior declaras un bufer de lectura con el que podras ir leyendo de teclado linea a linea
        Operaciones operador = new Operaciones();
        String linea;
        while( (linea=br.readLine()) != null){
            int op1 = Integer.parseInt(linea);
            linea = br.readLine();
            int op2 = Integer.parseInt(linea);
            linea = br.readLine();
            if("+".equals(linea))
                System.out.println(El resultado de sumar " + op1 + " a " + op2 + " es: " + operador.sumar(op1, op2));
            else if("-".equals(linea))
                System.out.println("El resultado de restar " + op1 + " a " + op2 + " es: " + operador.restar(op1, op2));
            else
                System.out.println("Operacion desconocida");
        }
    }

}


Este sencillo programa reconocería una entrada de este tipo:

3
4
+
18
2876
+
1242
4
-


realizando las operaciones indicadas, ya tú misma puedes cambiar en que orden lees las cosas y como las tratas. También puedes hacer uso de la clase Scanner, pero la verdad nunca la he usado y prefiero moverme a mi antojo leyendo las cosas y parseandolas a mi gusto.

La clase Operaciones sería algo así:

Código (java) [Seleccionar]

public class Operaciones{
   
    public int sumar(int operando1, int operando2){
        return operando1+operando2;
    }

    public int restar(int operando1, int operando2){
        return operando1-operando2;
    }

    //Demas procedimientos...
}


Espero que te sirva.

Saludos.

1mpuls0

Con herencia

De acuerdo al código de Valkyr también puedes utilizar "extends".

Código (java) [Seleccionar]

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Principal extends Operaciones{

    public static void main(String[] args){
    try{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String linea;
        while( (linea=br.readLine()) != null){
            int op1 = Integer.parseInt(linea);
            linea = br.readLine();
            int op2 = Integer.parseInt(linea);
            linea = br.readLine();
            if("+".equals(linea))
                System.out.println("El resultado de sumar " + op1 + " a " + op2 + " es: " + sumar(op1, op2));
            else if("-".equals(linea))
                System.out.println("El resultado de restar " + op1 + " a " + op2 + " es: " + restar(op1, op2));
            else
                System.out.println("Operacion desconocida");
        }
    }catch(Exception e){
    System.out.println(e);
    }
       
    }
}



Código (java) [Seleccionar]

public class Operaciones{

    public static int sumar(int operando1, int operando2){
        return operando1+operando2;
    }

    public static int restar(int operando1, int operando2){
        return operando1-operando2;
    }

    //Demas procedimientos...
}



No es necesaria una interfaz.
abc

llvvrr

Muchas gracias...
;-) ;-) ;-)

A ver si me va a gustar ahora programar en java??...Os lo agradezco infinitamente...
Un saludo