Curso de Programación Paso a Paso [Java]

OP

felomeno

immer bei dir
VIP
Mensajes
8.048
Reacciones
840
Puntos
1.412
Programación Orientada a Objetos
Java

Primero ... no es seguro que siga haciéndolo si veo que en realidad no está teniendo un seguimiento por parte de los users.
Uno de los inconvenientes es que no van a aprender C ni C++ así que esto será un poco más lento de lo que pensaba, pero no habrá mucho problema. Iré actualizando con nuevas "lecciones" cuando pueda o en algún caso, hasta que reciba ejemplos creados por ustedes.

Generalmente no les voy a decir qué hacer; les puedo recomendar que hagan algo y puede hacerlo para mejorar, yo lo reviso, aclaro dudas etc. seguimos; espero al menos recibir un ejemplo por cada cosa que veamos, de lo contrario dejaré de hacer esto
porque no les interesa.

Intentaré seguir el programa que dejó katana_cerezo, pero me saltaré varias cosas porque es un curso hecho para 6 meses y no se puede ver completo en unas cuantas semanas, así que me ahorraré las definiciones que no son realmente necesarias para programar (seudocódigo, programa, historia de java, usos, etc.) Si alguien tiene una duda de eso puede preguntarme por msn.

Por último, mi msn me lo pueden pedir por mp, ya tengo dos (vojok y picopico).

  • Primera lección

    Una de las ventajas de java es su portabilidad, es decir, su código funciona en cualquier sistema operativo.
    Normalmente lo que hace un IDE (un ambiente de desarrollo) es ayudar a la compilación y ejecución del código, en
    otros lenguajes de programación el compilador traduce de código fuente (lo que programamos) a código objeto (lenguaje de las computadoras). La ventaja de java es que tiene un intermedio, el código byte, y es la Java Virtual Machine (JVM) la que ayuda a ejecutar los programas.

    Antes de poder empezar a programar necesitarán cualquiera de estas dos cosas (lo mejor es tener las dos).
    JDK (si no les funciona pongan jdk en google y descargan de otra parte)

    Es necesario para cualquier programación en java, con esto será suficiente para que puedan programar desde un editor de texto (en caso de Windows sería el bloc de notas).
    Revisen bien que sea el JDK el que instalan y no el JRE (normalmente ese ya lo trae su pc).
    No será suficiente con instalarlo, tendrán que modificar sus variables de entorno (cuidado en este paso).

    Entrarán a Propiedades del Sistema -> Opciones avanzadas -> Variables de entorno -> Le dan click a Path (está en variables del sistema) y después en modificar.

    Ahí lo que colocarán es el directorio donde se encuentra el jdk instalado, seguido de \bin; (lo deben de poner al principio de todo lo que ya trae la variable).
    Normalmente esa variable ya trae algo, NO LO BORREN, lo del jdk lo deben de poner antes de lo que ya aparece. Será algo como esto:
    C:\Archivos de programa\Java\jdk1.6.0_16\bin;

    Si lo hacen bien, ya podrán empezar a programar.


    La otra opción es instalar NetBeans (uno de los mejores IDE para java), en la misma página que puse arriba hay una opción que para descargarlo. También pueden leer este tema en la parte que dice IDE
    http://www.emudesc.net/foros/progra...ide-base-de-datos-servidores-web-y-otros.html

    Si descargan esa el siguiente paso es instalar netbeans, generalmente eso hace que la variable Path se actualice sola y no tendrán que modificarla ustedes (aunque no siempre es así).

  • Lección 2: El primer programa

    Esto simplemente les servirá para probar que hayan hecho bien la primera parte.
    1.- Abran el bloc de notas o Netbeans si lo prefieren. (Si abren netbeans deben de tener más cuidado)
    Escriban lo siguiente

    PHP:
    public class Hola{
       public static void main (String [] args){
          System.out.println ("Hola Mundo!");
       }
    }

    Eso les imprimirá en la consola lo que le pongan entre comillas.

    Guardado:
    Se guardará con el mismo nombre de la clase (Hola) más la extensión .java por lo que quedará Hola.java

    NOTA: El nombre de la clase (en este caso Hola) debe ser el mismo nombre con el cual guarden el archivo (si es en el bloc de notas deberá ser Hola.java) y si es en netbeans cuando le ponen en crear nuevo proyecto, cuando les pida el nombre de la clase deben de poner Hola. (Si lo prefieren los que lo vayan a hacer en NetBeans, contacten por msn conmigo para hacerlo más rápido, aunque les recomiendo que empiecen con bloc de notas.)

    Ejecución:
    (Si lo hacen en netbeans se ahorran esto porque sólo le deben poner en Run (shift + F6 si no me equivoco xD)
    Abren el "símbolo del sistema" (Inicio -> Todos los programas -> accesorios -> Símbolo del sistema
    o en ejecutar escriben cmd.

    Cuando se abra la ventana (la que aparece el fondo negro) tiene que escribir el directorio en donde está guardada el archivo Hola.java. Si lo guardaron en Mis Documentos tendrían que escribir esto:
    cd "Mis Documentos" (con comillas); en caso de que se encuentre en otra carpeta dentro de Mis Documentos escriben cd "Nombre de la carpeta"

    Si no se acuerdan o no saben cómo pasar de un directorio a otro pueden escribir "dir" (sin las comillas, y darle enter) y les aparecerán todas las carpetas y archivos que tengan ahí, y con eso sabrán a qué carpeta meterse con el comando cd.

    Una vez que estén en el directorio correcto harán estas dos cosas:
    1.- Escribir: javac Hola.java
    (Lo que hará será compilarla y crear el código byte, si revisan su carpeta se habrá creado el Hola.class)
    2.- Para ejecutarlo escribirán: java Hola
    (Eso empieza a correr el programa).


    Con esto acaban las dos primeras lecciones, espero dudas, comentarios (un "sí me sirvió" me basta para poder continuar)


    Conclusión lección 1 y 2 (no continuar si no se han realizado)


    Hola.java correctamente indentado [4shared]


    A los que les sirvió el programa significa que instalaron todo correctamente. Acertadamente unos dijeron que imprimía en pantalla
    la frase que haya estado entre las comillas. Pero creo que todos se quedaron con la duda de qué hacía cada cosa. Se los explicaré aunque esto se ve mucho más adelante.
    public class Hola

    Las palabras public y class son palabras reservadas (están definidas por el lenguaje para realizar un propósito)

    public: Es un modificador de acceso (modifica los permisos de la clase para que sea accesibe al "público"), este en específico quiere decir que lo pueden acceder todos, al ser la clase principal, tiene que ser pública para que se pueda ejecutar.
    class: Es el marcador que significa el inicio de una clase. Una clase es el contenedor del código del programa.
    Hola: es el nombre de la clase (Recomendación: la primera tiene que ser con mayúscula)

    Java es sensible a las mayúsculas

    public static void main (String [] args)
    public: Como el método main es el punto de inicio debe ser públicamente accesible.
    static: especifica cómo acceder al método main: Debe ser inmediatamente accesible.
    void: En java un método puede devolver un valor o no hacerlo. En este caso, void se usa para que no devuelva ningún valor.
    (String [] args): es el conjunto de argumentos que se pasan al método main.

    Esa es la explicación del código que se hizo en la lección 2. Espero que lo entiendan, si tienen alguna duda es el momento de hacerla. Aparte de todo eso, tienen que saber que SIEMPRE es necesario poner esas dos líneas (obviamente el Hola puede cambiar a cualquier nombre que le quieran poner). La siguiente parte del código es un poco más fácil.

    System.out.println ("Hola Mundo");
    System: hace referencia a la computadora (Pc)
    System.out: se refiere a la salida en el sistema de cómputo: el monitor
    Println: Se refiere al método de impresión en pantalla del mensaje entre paréntesis (si es una cadena de caracteres directa, es decir, que ustedes la escriben en el código, se utilizan las comillas, pero si es una variable no se ponen comillas).



  • Lección 3: Conceptos básicos
    1. Salida: Es el mensaje que queremos que se imprima como una cadena literal (secuencia de caracteres).
    2. Variable: Es un contenedor al que se asigna un valor. (para el nombre de las variables se recomienda usar palabras completas, la primera letra con minúscula. Evitar espacios).
    3. Entrada: El valor que un usuario proporciona.
    4. Estructuras secuenciales: Contienen secuencias que se ejecutan en el orden escrito.
    5. Estructuras condicionales: Contienen una pregunta. La respuesta determina si se ejecutan los siguientes bloques o se saltan.
    6. Estructuras de control: También contienen preguntas. La respuesta determina si se repite el bloque de sentencias de control o si se mueve a las sentencias correctas.
    Algoritmo del rectángulo
    En este lo que se debe de hacer es imprimir el área del rectángulo.
    El algoritmo sería de la siguiente manera (lo esribiré en seudocódigo, es decir, no con el lenguaje de java, sino algo que se pueda entender fácilmente).
    • Imprimir "Dame la base"
    • Leer base
    • Imprimir "Dame la altura"
    • Leer altura
    • areaRectangulo = base*altura
    • Imprimir: "El área es " + areaRectángulo.
      Las palabras base, altura y areaRectangulo son variables.

      La salida (lo que se mostraría en pantalla) quedaría de la siguiente manera:
      Dame la base:
      4 (valor introducido por el usuario)
      Dame la altura
      10 (valor introducido por el usuario)
      El área es 40.

    En un programa de Java, se debe especificar a la Pc el tipo de dato para cada elemento (numérico o cadena de caracteres).

  • Lección 4: Estructura

    En esta lección se verá la declaración de variables, su inicialización y cómo trabajar con ellas. Además de un poco de estructura que les servirá para poder hacer sus primeros programas.

    Sentencia if
    • "if"
      Se usa cuando se quiere hacer algo o nada en absoluto.
      PHP:
      if (<condición>){
         <sentencias>
         }
      Funcionamiento:
      Si la condición es verdadera, se ejecutan todas las sentencias subordinadas.
      Si la condición es falsa, saltar a la línea debajo de la última subordinada.
    • "if, else"
      Si la codición es verdadera, ejecutar las sentencias subordinadas al if, si no es verdadera se salta el if y ejecuta el else.
      PHP:
      if (<condición>){
         <sentencias>
      }
      else {
         <sentencias>
      }
    • "if, else if"
      Esto es para hacer varias comparaciones (no sólo una como con if, ni dos como con if, else)

    Ejemplo en seudocódigo

    PHP:
    Leer temperatura
    Si temperatura es mayor a 27
       Imprimir Cálido
    De lo contrario si es mayor que 10
       Imprimir Adecuado
    De lo contrario
       Imprimir Frío
    Ahí se usaría una secuencia
    if
    else if
    else

    Sentencia while
    PHP:
    while (<condición>){
       <sentencias>
    }
    Repiten la ejecución de una secuencia particular de sentencias.
    Es un ciclo.

    Ejemplo en seudocódigo:
    PHP:
    Asignar a cuenta=1
    Mientras cuenta sea menor o igual a 100
          Imprimir feliz cumpleaños
          Asignar cuenta= cuenta+1.
    Lo que haría eso sería imprimir 100 veces Feliz Cumpleaños.
    el while se usa en donde dice "Mientras".

    Técnicas de terminación del ciclo
    • Contador: Utilizar una variable para registrar el número de iteraciones (número de veces que se repite un ciclo)
    • Petición del usuario: preguntar al usuario si desea continuar.
    • Valor centinela: identificar un valr que se encuentre fuera del rango normal de entrada y que se utilice para indicar que el ciclo debe terminar (por ejemplo si estamos haciendo un programa que indique la cantidad de saldo retirado, no se pueden usar valores negativos; el valor centinela sería que, cuando el usuario da un valor negativo, el programa termine).
    Fundamentos java

    Para escribir un comentario en el programa se utilizan // (dos diagonales) o para comentarios más largos
    /*
    * comentarios
    * comentarios
    */
    Lo que hará el compilador de java será saltarse todas las líneas que estén marcadas como comentarios

    Variables


    Declaración de variables

    Existen varios tipos de variables (numéricos, texto, en caso de java objetos)
    Para declararlos se hace de la siguiente manera
    PHP:
    <tipo> <lista de variables separadas por comas>;
    Los tipos pueden ser:
    • int ---> Utiliza 32 bits de memoria, se puede usar para números enteros desde los -2 milloes hasta los +2 millones
    • long ---> Utiliza 64 bits de memoria, se puede usar para números enteros desde los -9x10(a la potencia 18) hasta 9x10(a la potencia 18)
    • float ---> Se puede usar para números decimales que tengan 6 dígitos significativos
    • double ---> Se puede usar para números decimales que tengan 15 dígitos significativos.
    • String ---> es para una secuencia de caracteres (palabras)
    • char ---> es para un caracter
    • boolean ---> devuelve true o false.

      Esas son las más importantes pero hay otras como byte y short.
    Ejemplos de cómo se usan las variables.
    int num;
    long x, y, z;
    double a, b;
    String palabra;
    char caracter;
    (los nombres pueden cambiar, lo único fijo son los tipos de variables)

    Sentencias de asignación
    Con estas se le da un valor específico a la variable
    PHP:
    long x, y, z;
    double a, b;
    String palabra;
    char caracter;
    x = 456546;
    y = 1;
    z= 324;
    a = 7.45645;
    b = 454.4564;
    palabra = "hola";
    // no olviden las comillas
    caraceter = 'x';
    //para un caracter lleva comillas simples.
    //Siempre que se termine una sentencia deben poner punto y coma (;)
    Sentencias de inicialización
    Especifica un tipo de dato para una variable y pone un valor dentro de la misma.
    (Es una combinación de los dos anteriores)
    PHP:
    <tipo><variable = valor>;
    PHP:
    long x = 456546, y = 1, z = 324;
    double a=7.45645, b = 454.5464;

    A partir de ahora esto se pondrá más interesante porque ya pueden empezar a hacer programas más complejos.
    Otra cosa que les falta es aprender a usar "for" pero será en la siguiente lección.


    Conclusión lección 3 y 4 || Ejercicios
    Ahora como conclusión sólo les traigo un ejemplo. Haré el programa que mencioné en la lección 4 sobre la temperatura
    PHP:
    import java.util.Scanner;
    public class Temperatura{
      public static void main (String [] args){
        Scanner entrada = new Scanner (System.in);
        int temp;
        System.out.print ("Cual es la temperatura?:");
        temp = entrada.nextInt();
        if (temp >27)
           System.out.println ("Calido");
        else if (temp >10)
           System.out.println ("Adecuado");
        else
           System.out.println ("Frio");
      }
    }
    Lo nuevo que hay ahí es la primera línea.
    PHP:
    import java.util.Scanner;
    Ahí se importa la librería con la cual se van a poder leer datos desde el teclado
    PHP:
    Scanner entrada = new Scanner (System.in)
    Es un constructor... lo veremos más adelante cuando veamos objetos, sólo pónganlo cada vez que vayan a necesitar leer algo en un programa.

    Cuando se vaya a leer algo se hace de la siguiente manera
    <nombre de la variable> = entrada.<tipo que se quiera leer>
    Tipos de lectura
    nextInt() ---> lee un valor de tipo int
    nextLong() --> Lee un valor de tipo long
    nextFloat() ---> un valor de tipo float
    nextDouble() --> un valor de tipo double
    nextLine() ---> lee una palabra (o caracter)
    next() ---> también sirve para leer una palabra y se usa cuando se van a combinar lecturas de números y palabras en un mismo programa.

    Nota: la palabra "entrada" también puede cambiar por la que quieran, si le ponen
    Scanner e = new Scanner (System.in)
    para leer sería
    <variable> = e.<tipo>;


    Ahora...
    intenten hacer el programa con el algoritmo del rectángulo que dejé en la lección 3.
    Cualquier duda pueden preguntar



    Cualquier duda la pueden poner aquí mismo, pero de preferencia con imágenes o bien explicado para no tener problemas a la hora en la que yo esté leyendo sus dudas

    Nota general: Por cuestiones del foro no se ve exactamente como un buen programador haría el programa, generalmente después de cada llave ({) se deja una pequeña sangría para que se pueda ver qué código está dentro de cual. El compilador no tiene problema incluso si lo hacen todo en una sola línea, pero lo mejor es acomodarlo bien. Si lo hacen en netbeans se hace automáticamente. Cuando todos dejen sus dudas pongo una descarga hacia el archivo correctamente indentado.
 

skaparate

EMD Legend
Mensajes
2.350
Reacciones
9
Puntos
850
Ubicación
Chile
Hola, buen tutorial, pero en el foro de informática había un tutorial que ya se había comenzado, entonces, para que no pierdas tanto tiempo, podrías utilizar dicho tutorial y comenzar desde donde quedó ese. Quizás tengas que pedir permiso al autor :D.

Es solo una sugerencia, así que no lo tomes a mal :D.

Saludos y gracias.
 
OP

felomeno

immer bei dir
VIP
Mensajes
8.048
Reacciones
840
Puntos
1.412
Hola, buen tutorial, pero en el foro de informática había un tutorial que ya se había comenzado, entonces, para que no pierdas tanto tiempo, podrías utilizar dicho tutorial y comenzar desde donde quedó ese. Quizás tengas que pedir permiso al autor :D.

Es solo una sugerencia, así que no lo tomes a mal :D.

Saludos y gracias.

Ahh, no te preocupes, ya tengo el permiso del autor, porque era yo, yo hice el tema en Informática.
 
Mensajes
4
Reacciones
0
Puntos
0
Ubicación
Mexico
Orale esta informacion me servira de mucho tengo mucho tiempo queriendo aprender java, leere esto haber que comprendo

gracias nuevamente
 

BBR~

Un héroe de otoño
Mensajes
10.684
Reacciones
3.144
Puntos
0
Ubicación
CDMX
Leidas y realizadas las primeras dos lecciones y su conclusion
120jx2r.png
 
OP

felomeno

immer bei dir
VIP
Mensajes
8.048
Reacciones
840
Puntos
1.412
La verdad muy bueno, aunque todavía le tengo que ir agarrando la mano, y me falta mucho en la parte de Estructura. D:<
Cualquier duda específica que tengas me puedes preguntar.
Leidas y realizadas las primeras dos lecciones y su conclusion
120jx2r.png

Muy bien, es raro que la primera vez puedan lograr compilar sin que les dé problemas por todas las modificaciones que se tuvieron que hacer. Cuando termines la lección 4 (con todo y el ejercicio) sigo poniendo más lecciones.

Saludos
 
OP

felomeno

immer bei dir
VIP
Mensajes
8.048
Reacciones
840
Puntos
1.412
A que te refieres que tengamos cuidado con NeatBeans que podria pasar, sou nuevo :B

Simplemente a que no les ponga cosas de más. Es mucho más cómodo usar netbeans porque completa muchas de las cosas que escribe, pero a veces por no fijarse se pueden poner cosas que no son.
 

BBR~

Un héroe de otoño
Mensajes
10.684
Reacciones
3.144
Puntos
0
Ubicación
CDMX
Lecciones 3 y 4 leidas y realizadas (además de comprendidas, lol)
Muy interesante lo de las variables, me recordó un poco a flash (aunque este nunca me metí de lleno por diversas razones...)
Resultado:
2zit2z4.jpg

También jugué un poco con las variables y modifique el texto, resultado:
8vvm1i.jpg

Descarga.
 
Mensajes
1.569
Reacciones
96
Puntos
0
Ya acabe las lecciones 3 y 4 con su conclusión.
2hnqbo6.png

Aqui esta el codigo del Rectangulo:
PHP:
import java.util.Scanner; 
public class Rectangulo{ 
  public static void main (String [] args){ 
    Scanner rect  = new Scanner (System.in); 
    float base, altura, areaRectangulo;
    System.out.print ("Dame la base:"); 
    base = rect.nextFloat(); 

    System.out.print ("Dame la altura:"); 
    altura = rect.nextFloat();
    areaRectangulo = base*altura;
    System.out.print ("El area es" + areaRectangulo); 
  } 
}
Uso tambien otra variable para sumar, lol
PHP:
import java.util.Scanner; 
public class Sumar{ 
  public static void main (String [] args){ 
    Scanner rect  = new Scanner (System.in); 
    float base, altura, areaRectangulo;
    System.out.print ("Dame un numero"); 
    base = rect.nextFloat(); 

    System.out.print ("Dame otro numero:"); 
    altura = rect.nextFloat();
    areaRectangulo= base+altura;
    System.out.print ("El resultado es" + areaRectangulo); 
  } 
}
Solo cambie * por +, lol xD
 
Última edición:
OP

felomeno

immer bei dir
VIP
Mensajes
8.048
Reacciones
840
Puntos
1.412
Lecciones 3 y 4 leidas y realizadas (además de comprendidas, lol)
Muy interesante lo de las variables, me recordó un poco a flash (aunque este nunca me metí de lleno por diversas razones...)
Resultado:
2zit2z4.jpg

También jugué un poco con las variables y modifique el texto, resultado:
8vvm1i.jpg

Descarga.

Te faltó hacer el de las áreas. Revisa los siguientes post al tuyo para que veas cuál te faltó (pero sin ver la solución).

Mañana pongo las siguientes lecciones hasta llegar a un ejercicio.
 
OP

felomeno

immer bei dir
VIP
Mensajes
8.048
Reacciones
840
Puntos
1.412
Se que este tema lleva como tres años y por eso pregunto, todavia es viable este tutorial?
Sí, todo sigue siendo igual, excepto por las versiones de los programas. Pero los pasos son los mismos.
 
Mensajes
301
Reacciones
16
Puntos
0
Ubicación
in somewhere unexpected place
@Gladiador97 Si te preocupa eso, puedes prestarle mas atención a la parte de la lógica que esta bastante bien explicado, y la parte de la sintaxis te la puedes saltar, aunque la verdad la sintaxis que se usa en el tutorial es básica, y en esencia no veo que sea muy diferente a la sintaxis que usarías en la actualidad, excepto por el hecho que los códigos actuales han mejorado como para poder hacer lo mismo de forma mas eficiente.

En otras palabras, lo mas probable es que todo compile pero la eficiencia de la estructura del código podría ser cuestionable, así que todo depende para que quieras el tutorial, si es para aprender o para algo mas.
 
OP

felomeno

immer bei dir
VIP
Mensajes
8.048
Reacciones
840
Puntos
1.412
@Gladiador97 Si te preocupa eso, puedes prestarle mas atención a la parte de la lógica que esta bastante bien explicado, y la parte de la sintaxis te la puedes saltar, aunque la verdad la sintaxis que se usa en el tutorial es básica, y en esencia no veo que sea muy diferente a la sintaxis que usarías en la actualidad, excepto por el hecho que los códigos actuales han mejorado como para poder hacer lo mismo de forma mas eficiente.

En otras palabras, lo mas probable es que todo compile pero la eficiencia de la estructura del código podría ser cuestionable, así que todo depende para que quieras el tutorial, si es para aprender o para algo mas.

Yo no veo nada cuestionable de la estructura del código. Y ni siquiera son programas avanzados como para hablar de "hacer lo mismo de forma más eficiente".
Si les quieres enseñar a leer de forma eficiente usando buffers en lugar de System.in, entonces no es un curso de programación paso a paso. Y aparte de eso, no hay nada que se pueda hacer más eficiente. Y vamos, quién usa BufferReader para leer de consola incluso en "la actualidad"?
 
Mensajes
301
Reacciones
16
Puntos
0
Ubicación
in somewhere unexpected place
Yo no veo nada cuestionable de la estructura del código. Y ni siquiera son programas avanzados como para hablar de "hacer lo mismo de forma más eficiente".
Si les quieres enseñar a leer de forma eficiente usando buffers en lugar de System.in, entonces no es un curso de programación paso a paso. Y aparte de eso, no hay nada que se pueda hacer más eficiente. Y vamos, quién usa BufferReader para leer de consola incluso en "la actualidad"?

No me refiero a lo que tu quieres hacer, sino a lo que la persona que pregunta quiere hacer.

Y se supone que si tu enseñas todo esto lo cual es muy bueno, es para que a futuro se puedan realizar códigos mas avanzados en base a los mismos códigos que se aprenden desde el principio.
 
Arriba Pie