PROBLEMA 1: Primero veamos cual es el problema 1: [0:40 anakena:~/cursos/aux/cc30a/2000.1/aux01/]% more prb1.java /** * autor: Rodrigo Paredes * correo: raparede@dcc.uchile.cl * * Este ejemplo se desarrolla para el curso cc30a, clase auxiliar 1 * como ven es el clasico programa Hello World */ public class prb1 { public static void main (String[] args) { System.out.println("Hello World!"); } } Compilacion del programa: [0:40 anakena:~/cursos/aux/cc30a/2000.1/aux01/]% javac prb1.java Ejecucion del programa: [0:41 anakena:~/cursos/aux/cc30a/2000.1/aux01/]% java prb1 Hello World! PROBLEMA 2: Ahora que conocemos cual es la version procedural de HelloWorld, veamos como se ve con una estructura "mas elaborada", que por cierto es la que se recomienda usar: La idea es hacer una aplicacion "modular", que significa esto: Que la aplicacion este compuesta de elementos, tal como si fuera un mecano, en este caso basta con dos elementos: Primero definimos una clase interna que hace el trabajo sucio Segundo, con la clase principal invocamos la clase interna: [1:00 anakena:~/cursos/aux/cc30a/2000.1/aux01/]% more prb2.java /** * autor: Rodrigo Paredes * correo: raparede@dcc.uchile.cl * * Este ejemplo se desarrolla para el curso cc30a, clase auxiliar 1 * como ven es el clasico programa Hello World, pero con una * metodologia mas depurada */ /** * clase interna */ class HelloWorld { String mensaje; public HelloWorld () { this.mensaje= "Hellow World!"; } public HelloWorld (String otroMensaje) { this.mensaje= otroMensaje; } public void imprime () { System.out.println (mensaje); } } /** * clase principal */ public class prb2 { public static void main (String[] args) { HelloWorld objeto1= new HelloWorld(); objeto1.imprime(); System.out.println ("Ahora en castellano:"); HelloWorld objeto2= new HelloWorld("Hola Mundo!"); objeto2.imprime(); } } Compilacion del programa: [1:05 anakena:~/cursos/aux/cc30a/2000.1/aux01/]% javac prb2.java Ejecucion del programa: [1:05 anakena:~/cursos/aux/cc30a/2000.1/aux01/]% java prb2 Hellow World! Ahora en castellano: Hola Mundo! Noten dos cosas 1.- Al compilar se genera el byte code de la clase HelloWorld, y el de la clase prb2 [1:05 anakena:~/cursos/aux/cc30a/2000.1/aux01/]% ls -la total 16 drwxr-xr-x 2 raparede aroup 512 Mar 9 00:53 ./ drwxr-xr-x 3 raparede aroup 512 Mar 9 00:19 ../ -rw-r--r-- 1 raparede aroup 530 Mar 9 01:05 HelloWorld.class -rw-r--r-- 1 raparede aroup 587 Mar 9 00:55 clase.txt -rw-r--r-- 1 raparede aroup 414 Mar 9 00:55 prb1.class -rw-r--r-- 1 raparede aroup 293 Mar 9 00:54 prb1.java -rw-r--r-- 1 raparede aroup 532 Mar 9 01:05 prb2.class -rw-r--r-- 1 raparede aroup 774 Mar 9 01:05 prb2.java Recuerden que HelloWorld es la clase que hace el trabajo sucio, prb2 solo la invoca. 2.- El constructor de la clase HelloWorld tiene 2 versiones distintas, las que diferencian por su firma: firma 1: public HelloWorld () firma 2: public HelloWorld (String otroMensaje) La diferencia entre las firmas se ve con los argumentos, la firma 1 no tiene argumentos, la firma 2 tiene 1 argumento, y ademas es del tipo String!! Esto se conoce como sobrecarga de metodos! PROBLEMA 3: Sigamos con lo basico, ahora veremos el if, if/else, while, for. Les dejo a ustedes investigar el do while y el switch. Uso del if: String control = "hola"; if (control.equals("castellano") ) { System.out.println ("Caso verdadero del if"); } System.out.println ("Esto siempre se vera"); Uso del if/else: String control = "hola"; if (control.equals("castellano") ) { System.out.println ("Esto se ve si es verdadero"); } else { System.out.println ("Esto se ve si es falso"); } Uso del while: int contador; /** * inicializacion */ contador = 0; /** * while (/* condicion */) { * } */ while (contador < limite) { System.out.println ("Iteracion No " + contador); /** * incremento */ contador++; } Uso del for: int contador; /** * for ( /* inicializacion */; /* condicion */; /* incremento*/){ * } */ for ( contador = 0; contador < limite; contador++) { System.out.println ("Iteracion No " + contador); } Compilacion del programa: [1:54 anakena:~/cursos/aux/cc30a/2000.1/aux01/]% javac prb3.java Ejecucion del programa: [1:55 anakena:~/cursos/aux/cc30a/2000.1/aux01/]% java prb3 Uso de if: caso verdadero: Caso verdadero del if Esto siempre se vera caso falso: Esto siempre se vera Uso de if/else: caso verdadero: Esto se ve si es verdadero caso falso: Esto se ve si es falso Uso de while: Iteracion No 0 Iteracion No 1 Iteracion No 2 Uso de for: Iteracion No 0 Iteracion No 1 Iteracion No 2 PROBLEMA 4: