210 likes | 231 Views
Estructuración y modularidad de los programas. Fundamentos de Programación/ Programación I 2007-2008. Estructuración y modularidad. Hay varios criterios que uno quiere cumplir cuando escribe un programa Un programa bien escrito suele ser compacto: no innecesariamente largo
E N D
Estructuración y modularidad de los programas Fundamentos de Programación/ Programación I 2007-2008
Estructuración y modularidad • Hay varios criterios que uno quiere cumplir cuando escribe un programa • Un programa bien escrito suele ser • compacto: no innecesariamente largo • legible: fácil a entender y utilizar para otros • robusto: no fallar con entradas inesperadas • reutilizable: se puede reutilizar parte del programa
Reutilización • A menudo queremos aplicar una misma operación en varias programas • Podemos copiar el código y manipular las entradas para que funcione en otro programa • No obstante, ¿qué pasa si queremos cambiar el código? • Tenemos que cambiarlo en todos los lugares donde halla • Mejor tener el código en un mismo lugar
Métodos • Métodos en Java son módulos de código que se pueden tratar individualmente • Un programa normalmente consiste en varios métodos • Ventajas: • abstracción: el usuario de un método no necesita conocer el proceso, sólo la entrada y salida • reutilización: un método de un programa se puede reutilizar en otro • legibilidad: más fácil entender y escribir un programa separado en módulos • compactibilidad: no contiene varias copias del mismo código
Declaración de métodos • Sintaxis: <acceso> <tipo> <identificador>(<entrada>) { <bloque> } • El acceso especifica quién tiene acceso al método • El tipo especifica cual va a ser el resultado del método • El identificador es el nombre del método • La entrada es una secuencia de variables separadas por coma
Acceso a métodos • A veces uno quiere restringir el acceso a métodos • Es posible cambiar el acceso en la declaración de un método • En este curso, el acceso de un método siempre será public static • Eso significa que se puede usar el método en cualquier otro programa
Tipos de métodos • El tipo de un método especifica cual será el resultado del método • Por ejemplo, si el tipo de un método es int, el resultado del método es un número entero • Un método puede tener cualquier tipo entre los que conocemos • Además, el tipo de un método puede ser void • Eso significa que el método no devuelve ningún resultado
Entrada de métodos • Cada método tiene una entrada • La entrada es una secuencia de variables separadas por coma • La entrada puede ser vacía, es decir, una secuencia de 0 variables • Las variables especifican el tipo de información que el usuario necesita proveer para aplicar el método • No se inicializan las variables de entrada
Salida de métodos • Si el tipo de un método es otro que void, el método necesita una salida • La salida representa el resultado del método dado una entrada • Para que un método devuelve un resultado se usa la palabra return • El significado de return es “terminar el método y devolver el valor adjunto”
Ejemplo • Ejemplo de un método que realiza multiplicación: public static int mult(int a, int b) { int resultado = a * b; return resultado; }
Llamar a métodos • Para llamar a un método hay que especificar los valores de entrada • Sintaxis: <identificador>(<valores>) • Los valores de entrada son separados por coma y sus tipos tienen que corresponder a los tipos de las variables de entrada en el mismo orden • Para guardar el resultado de un método, hay que utilizar una variable del mismo tipo
Llamar a métodos • Si el método halla en un programa fuera del programa actual, necesita especificar el nombre del otro programa • Sintaxis: <programa>.<identificador>(<valores>) • Ejemplos: TextIO.putln(“Entrar un número entero ”); int numero = TextIO.getInt();
Ubicación de métodos • Todos los métodos de un programa hallan dentro de las llaves del programa • ¡Nunca un método halla dentro de otro método! • Consecuentemente, no hallan dentro de main, que también es un método
Ejemplo • Ejemplo de un método que realiza multiplicación: public static int mult(int a, int b) { int resultado = a * b; return resultado; } public static void main(String[] args) { int producto = mult(15, 17); System.out.println(producto); }
Variables de métodos • Dentro de un método se puede usar variables • ¡No obstante, una variable declarada en un bloque sólo existe dentro de este bloque! • No se puede usar su identificador dentro de otros métodos
Ejemplo • Ejemplo de un método que realiza multiplicación: public static int mult(int a, int b) { int resultado = a * b; return resultado; } public static void main(String[] args) { int producto = mult(15, 17); System.out.println(a * b); }
La pila (stack) • Un método puede llamar a otro método como subrutina • Consecuentemente, varios métodos pueden ejecutar al mismo tiempo • Siempre hay sólo un método activo • Los otros métodos están esperando que el método activo termine y devuelve su resultado • Java usa una pila (stack) para recordar los métodos que están ejecutando • El método activo está arriba de la pila
La pila (stack) public static int mult(int a, int b) { int resultado = a * b; return resultado; } public static void main(String[] args) { int producto = mult(15, 17); System.out.println(producto); } mult main
Ejercicio • Escribir un método que calcule la factorial de un número
Ejercicio • Resolver el problema del supermercado con métodos