martes, 15 de mayo de 2012

Métodos en Java



Bienvenido a Java Curso Avanzado.  En esta publicación aprenderás:
Como crear métodos dentro de una clase en programación Java.


Programación funcional que consta de sentencias para resolver un problema especifico, como por ejemplo limpiar una matriz de algún tamaño, hacer un proceso matemático o realizar una tarea como la de autentificación.

Conocemos el método principal el cual es reconocido por el software de programación java SDK, al cual se le hace referencia con el nombre de “Main”. En este método es donde inicia todo el proceso de programación. A continuación se muestra un diagrama de cómo funciona el inicio y fin de sentencias de programación en Java por medio de métodos.



Se encierra en un rectángulo cada una de los métodos. La clase Main.java contendrá un método el cual imprime una sentencia en pantalla lo cual contendrá lo siguiente:

En código de programación es el siguiente:

Ahora se hace un programa el cual obtenga un número entero del usuario usando un método llamado getNumero el cual funciona de la siguiente manera.

En código de programación es el siguiente:


Por último haces dos métodos los cuales el primero obtiene un número capturado por el usuario y el Segundo muestra el numero obtenido

En código de programación es el siguiente:

Cualquier duda o comentario, se le dará respuesta lo mas pronto posible.






martes, 8 de mayo de 2012

Clase Suma en Java


Bienvenido a Java Curso Avanzado.  En esta publicación aprenderás:
Como elaborar una clase de un proceso de suma para números enteros y double.

Problema a resolver: Se sabe que un proceso puede realizarse en una sola sentencia. Pero que pasa si el proceso es mas complejo de lo que parece, ejemplo de este caso es la suma de números.

¿Cómo elaborar esta clase para cumpla con los requerimientos para funcionar en cualquier caso?
Lo primero que tenemos que hacer es establecer que métodos podemos utilizar en un caso de suma.

Los casos son los siguientes:

  1. -Sumar 2 números enteros dados por el usuario.
  2. -Sumar 10 números enteros dados por el usuario.
  3. -Sumar 2 números decimales dados por el usuario.
  4. -Sumar 10 números decimales dados por el usuario.

Lo primero que pensaría una persona es resolver el caso dentro del mismo método del Main.
A continuación se muestra lo que no se debe hacer en la suma.

public static void main(String[] args) {
        int numero1=5;
        int numero2=7;
        int resultado=numero1+numero2;
        System.out.println("Resultado: "+resultado);
    }

En el caso anterior solo resuelve el primer punto.


public static void main(String[] args) {
        double numero1=5.4;
        double numero2=7.3;
        double resultado=numero1+numero2;
        System.out.println("Resultado: "+resultado);
    }

En el caso anterior solo resuelve el tercer punto.



Entonces los puntos dos y tres tampoco se resuelven igual o agregando un ciclo.
Lo que se tiene que hacer es crear una clase en la cual se puede resolver cualquier caso.
Esto es para que el código no se modifique y en caso de hacerlo solo se modifique en un lugar y no en varios lugares.

La clase deberá quedar así.


/*
 * Autor: Hugo Muñoz García
 * Version: 1.0
 * Fecha: 08/05/2012
 * Tema: Clase Suma
 */
public class Suma {
    //Atributos para variables tipo int
    private double[] dOperadores;
    private double dResultado=0;

    //Atributos para variables tipo double
    private int[] iOperadores;
    private int iResultado=0;
    
    /*Constructor para variable int[]*/
    public Suma (int[] numeros){
        this.iOperadores=numeros;
    }
    /*Constructor para variable Double[]*/
    public Suma (double[] numeros){
        this.dOperadores=numeros;
    }
    /*Obtener el resultado en int*/
    public int getResultadoInt(){
        this.iResultado=getResultadoSumaInt();
        return this.iResultado;
    }
    /*Obtener el resultado en Double*/
    public double getResultadoDouble(){
        this.dResultado=getResultadoSumaDouble();
        return this.dResultado;
    }
    private int getResultadoSumaInt(){
        for (int i=0;i<this.iOperadores.length;i++){
            this.iResultado+=this.iOperadores[i];
        }
        return this.iResultado;
    }
    private double getResultadoSumaDouble(){
        for (int i=0;i<this.dOperadores.length;i++){
            this.dResultado+=this.dOperadores[i];
        }
        return this.dResultado;
    }
    /*Obtiene un numero de una posición de una matriz*/
    public int getOperador(int[] operadores, int posicion){
        return operadores[posicion];
    }
}


En el método Main solo se hace lo siguiente en caso de ser enteros para dar como resultado 14.
public static void main(String[] args) {
        int[] numeros={2,3,4,5};//En vez de esto capturamos cada numero en una matriz
        //tipo int
        Suma suma=new Suma(numeros);//Creamos la clase y le asignamos la matriz
       
        System.out.println("Resultado: "+suma.getResultadoInt());
    }



En el método Main solo se hace lo siguiente en caso de ser decimales para dar como resultado 14.8.
public static void main(String[] args) {
        double[] numeros={2.2,3.2,4.2,5.2};//En vez de esto capturamos cada numero en una 
        //matriz tipo double
        Suma suma=new Suma(numeros);//Creamos la clase y le asignamos la matriz
       
        System.out.println("Resultado: "+suma.getResultadoDouble());
    }

Si deseas descargar el código es el siguiente. Descarga del servidor de preferencia.