Segundo Ejercicio de Autoevaluacion(Aplicaciones Java)

Saludos Amigos Javeros les quiero compartir este pequeño Proyecto, se que muchos de ustedes o la gran mayoria van demasiado adelantados en las cuestiones de programacion y quizas este pequeño ejemplo no les signifique nada,quize compartirlo porque como principiante me ha costado trabajo sacrificio y sobre todo dedicacion,una de mis metas a futuro sera el poder certificarme, pero falta un buen de mi libro "Como Programar en Java" asi como muchos mas uno de los links con el que me gusta interactuar es que llamo Java Platform,Standard Edition 6 API Specification el cual me ha ayudado al hacer correcciones a los pequeños proyectos con los que inicio.
Bueno les dejo mi ejemplo para que sea evaluado por algun genio de ustedes y me digan lo que puedo recortar asi como como lo que puedo evitar y sea mas legible.

 /*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author DELL 1
 */

import javax.swing.JOptionPane;

public class producto {

    public static void main (String args []){

        //iniciamos el calculo de los enteros

        //declaramos las variables de tipo int

        int x,y,z,resultado;

        //hacemos la declaracion de tipo String

        String xVal, yVal, zVal;

        //pedimos al usuario ingresar los valores enteros

        xVal = JOptionPane.showInputDialog("Escriba primer entero:");
        yVal = JOptionPane.showInputDialog("Escriba segundo entero:");
        zVal = JOptionPane.showInputDialog("Escriba tercer entero:");

        //convertimos las variables String a variables int

        x = Integer.parseInt(xVal);
        y = Integer.parseInt(yVal);
        z = Integer.parseInt(zVal);

        // en la siguiente linea calculamos el producto de los tres enteros

        resultado = x * y * z;

        JOptionPane.showMessageDialog(null,"El producto es:" + resultado);

        System.exit(0);

    }
}

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de JaimeItlzc

Me parece

1.-Pues seria bueno que utilizaras validaciones para la lectura de tus variables.
2.-Las clases se inician con Mayuscula.

Saludos.

Es poco el código

Antes que nada te felicito por ser proactivo y esforzarte por aprender más por tu cuenta.

Aunque el código que muestras es poco, aun así se pueden hacer un par de cosas. Yo no las llamaría mejoras, por que lo que tienes no está mal ( bueno salvo lo que apunta JaimeItlzc acerca de empezar el nombre de clase con mayúscula, eso si esta feo :P )

Aquí van:

1.- En Java puedes declarar la variable e inicializarla al mismo tiempo por lo que podrías cambiar tu código por algo así:

        // int x,y,z,resultado;
        //hacemos la declaracion de tipo String
        //String xVal, yVal, zVal;
        //pedimos al usuario ingresar los valores enteros
        String xVal = JOptionPane.showInputDialog("Escriba primer entero:");
        String yVal = JOptionPane.showInputDialog("Escriba segundo entero:");
        String zVal = JOptionPane.showInputDialog("Escriba tercer entero:");
        //convertimos las variables String a variables int
        int x = Integer.parseInt(xVal);
        int y = Integer.parseInt(yVal);
        int z = Integer.parseInt(zVal);
        // en la siguiente linea calculamos el producto de los tres enteros
        int resultado = x * y * z;
        JOptionPane.showMessageDialog(null,"El producto es:" + resultado);
        System.exit(0);

Que, luce casi igual, pero al menos resulta un poquitito más fácil identificar donde es usada una variable.

2.- Si tienes funcionalidad repetida, puedes crear un método. Aunque de nuevo, en tu código puede parecer exagerado hacer lo siguiente, en un pedazo de código más grande puede valer la pena: "Extraer un método"

Por ejemplo en tu código estas a) tomando información del usuario y b) convirtiendola en un entero. Para ello estás creando tres variables de string temporales ( xVal, yVal y zVal ) y tres variables de int temporales ( x,y, Y z ) ... si usas un método para obtener esa información puedes eliminar esas variables temporales.

    private static String getIntValue( String message ) {
         return Integer.parseInt( JOpeiontPane.showInputDialog( message ) );
    }

Tu código final puede verse así:

import javax.swing.JOptionPane;
public class Producto {
    public static void main (String [] args ){
        //iniciamos el calculo de los enteros
        // en la siguiente linea calculamos el producto de los tres enteros
        int resultado = getIntValue("Escriba primer entero:")  *
                        getIntValue("Escriba segundo entero:") *
                        getIntValue("Escriba tercer entero:")
        JOptionPane.showMessageDialog(null,"El producto es:" + resultado);
    }
    private static String getIntValue( String message ) {
         return Integer.parseInt( JOptionPane.showInputDialog( message ) );
    }
}

De esta forma, si quisieras agregar validaciones como también sugiere Jaime, podrías poner la validación en ese nuevo método y no tener que ensuciar el método principal o tener que hacer copy/paste de alguna validación, por ejemplo para forzar a que el usuario introduzca un entero puedes cambiar el método así:

 
    private static String getIntValue( String message ) {
         String value = "";

         while( ! ( value = JOptionPane.showInputDialog(message)).matches("\\d+"));

         // este while se  lee así:
         // mientras el valor regresado por el joption pane, no "matchee" o coincida
         // con uno o más enteros
         // vuelvelo a pedir.

         return Integer.parseInt( value );
    }

O también podrías usar un componente que ya haga la validación, todo, sin tener que cambiar la función que lo llama.

Por último, el System.exit(0); puede omitirse, por default es el valor con el que termina Java.

Espero que esto te sirva... chau!!!

Imagen de ray_iceman

Wow

Me latió el desarrollo que hizo Oscar, de un sencillo programa se fue pasito a pasito explorando las mejoras que se podrían hacer (y yo si las llamaría mejoras en el sentido de que reducen código, variables y finalmente recursos).
Casi impecable Oscar, y digo casi porque al final en el método con la validación ya no utilizaste el valor de la variable message :P

jejje si, hice una prueba en

jejje si, hice una prueba en mi máquina y le dejé la leyenda "Un entero".. pero ya se lo regresé B-)

Imagen de tHe pLuCkY

Gracias

Gracias Jaime te agradesco tus comentarios de eso se trata, o mas eso trato de acercarme a gente como ustedes que tienen mayor experiencia dentro del ambito de programacion, les agradesco el tiempo invertido en comentar los errores y las mejoras que puedo tener....

Imagen de tHe pLuCkY

Gracias

Hola Oscar fijate que si me dejaste boquiabierto la verdad es un trabajo que se que con horas de empeño hare, pero te soy sincero debo de aprenderlo de manera austera y larga ya que para mi son mis primeros pininos en esta cuestion......

Imagen de tHe pLuCkY

Gracias

Si Ray la neta que es un genio en lo personal, pero como comento en estos momentos debo de ir paso a paso ya que algunos de los conceptos manejados en programacion son nuevos para y podria perderme o disorcionar algunas cuestiones verdad............saludos a los 2 por el tiempo y les dejo mi cuenta en Twitter para seguirnos....... @jimenez_gil