Vous êtes sur la page 1sur 17

Modularizacion

Uso de subprogramas
Los lenguajes de programacin permiten descomponer un

programa complejo en distintos subprogramas:


Funciones y procedimientos: en lenguajes de programacin

estructurada
Mtodos:en lenguajes de programacin orientada a objetos

Por qu usar subprogramas?


Reducir la complejidad del programa (divide y vencers).

Eliminar cdigo duplicado.


Mejorar la legibilidad del cdigo.
Limitar los efectos de los cambios (aislar aspectos concretos).

Ocultar detalles de implementacin (ocultacin de informacin)

p.ej. algoritmos complejos


Promover la reutilizacin de cdigo p.ej. componentes
reutilizables y familias de productos
Facilitar la adaptacin del cdigo a nuevas necesidades p.ej.
interfaces de usuario
Mejorar la portabilidad del cdigo.

El nombre de un subprograma
Al crear un subprograma hemos de darle un nombre:
Cuando el subprograma no devuelve ningn valor (procedimientos y
mtodos void):
El nombre del subprograma suele estar formado por un verbo seguido,
opcionalmente, del nombre de un objeto.
Ejemplos: ingresar, realizarTransferencia, abonarImpuestos ...
El subprograma se encargar de realizar una operacin independiente con
respecto al resto del programa.
Cuando el subprograma devuelve un valor (funciones y mtodos):

El nombre del subprograma suele ser una descripcin del valor devuelto por la
funcin o el mtodo.
Ejemplos: saldoActual, saldoMedio, ...
El subprograma se usar habitualmente para obtener un valor que
emplearemos dentro de una expresin.

Mtodos
Los mtodos definen el comportamiento de los objetos de

una clase dada (lo que podemos hacer con los objetos de esa
clase)
Los mtodos exponen la interfaz de una clase.
Un mtodo define la secuencia de sentencias que se ejecuta
para llevar a cabo una operacin:
La implementacin de la clase se oculta del exterior.

Sintaxis
en
Java
La estructura de un mtodo se divide en:
Cabecera: (determina su interfaz)

modificadores tipo nombre (parmetros)


Cuerpo: (define su implementacin)
{
// Declaraciones de variables
// Sentencias ejecutables
// Devolucin de un valor (opcional)
}

En el cuerpo del mtodo se implementa el algoritmo necesario para realizar la tarea de la que el
mtodo es responsable.
El cuerpo de un mtodo se puede interpretar como una caja negra que contiene su implementacin.

El mtodo oculta los detalles de implementacin.


Cuando utilizamos un mtodo, slo nos interesa su interfaz.

Ejemplo Mtodo Main


Como todo en Java, ha de ser un miembro de una clase (esto es, estar definido en el interior

de una clase).
El modificador de acceso public indica que se puede acceder a este miembro de la clase
desde el exterior de la clase.
El modificador static indica que se trata de un mtodo de clase (un mtodo comn para
todos los objetos de la clase).
La palabra reservada void indica que, en este caso el mtodo main no devuelve ningn valor.
En general, no obstante, los mtodos son capaces de devolver un valor al terminar su ejecucin.
Los parntesis nos indican que se trata de un mtodo: Lo que aparece entre parntesis son los

parmetros del mtodo (en este caso, un vector de cadenas de caracteres, que se
representan en Java con objetos de tipo String).
El cuerpo del mtodo va delimitado por llaves { }

La cabecera de un mtodo
La cabecera de un mtodo determina su interfaz
Modificadores de acceso (p.ej. public o private) :
Determinan desde dnde se puede utilizar el mtodo.
Tipo devuelto (cualquier tipo primitivo, no primitivo o void ) :
Indica de que tipo es la salida del mtodo, el resultado que se
obtiene tras llamar al mtodo desde el exterior.
NOTA : void se emplea cuando el mtodo no devuelve ningn valor.
Nombre del mtodo : Identificador vlido en Java

CONVENCIN: En Java, los nombres de mtodos comienzan con


minscula.
Parmetros formales: Entradas que necesita el mtodo para

realizar la tarea de la que es responsable.

MTODOS SIN PARMETROS: Cuando un mtodo no tiene entradas,


hay que poner ()

La Interfaz de un mtodo
El nombre de un mtodo, los tipos de sus parmetros y el

orden de los mismos definen la signatura de un mtodo.


Los modificadores y el tipo del valor devuelto por un mtodo no
forman parte de la signatura del mtodo.

Sobrecarga
Lenguajes como Java permiten que existan distintos mtodos con el

mismo nombre siempre y cuando su interfaz no sea idntica.


No es vlido definir dos mtodos con el mismo nombre que difieran
nicamente por el tipo del valor que devuelven.

Uso de mtodos
Para enviarle un mensaje a un objeto, invocamos (llamamos a) uno de sus
mtodos:
La llamada a un mtodo de un objeto le indica al objeto que delegamos en l
para que realice una operacin de la que es reponsable.
A partir de una referencia a un objeto, podemos llamar a uno de sus mtodos
con el operador .
Tras el nombre del mtodo, entre parntesis, se han de indicar sus
parmetros (si es que los tiene).
El mtodo podemos usarlo cuantas veces queramos.

Ejemplo de ejecucin paso a paso

Los parmetros de un subprograma


Un mtodo puede tener parmetros:
A travs de los parmetros se especifican los datos de entrada

que requiere el mtodo para realizar su tarea.


Los parmetros definidos en la cabecera del mtodo se
denominan parmetros formales
Para cada parmetro, hemos de especificar tanto su tipo

como un identificador que nos permita acceder a su valor


actual en la implementacin del mtodo.
Cuando un mtodo tiene varios parmetros, los distintos
parmetros se separan por comas en la cabecera del mtodo.

Los parmetros de un subprograma


En la definicin de un mtodo, la lista de parmetros

formales de un mtodo establece:


Cuntos parmetros tiene el mtodo
El tipo de los valores que se usarn como parmetros

El orden en el que han de especificarse los parmetros

En la invocacin de un mtodo, se han de especificar los

valores concretos para los parmetros.


Los valores que se utilizan como parmetros al invocar un

mtodo se denominan parmetros actuales (o argumentos).

Cuando se efecta la llamada a un mtodo, los valores

indicados como parmetros actuales se asignan a sus


parmetros formales.
En la implementacin del mtodo, podemos utilizar entonces
los parmetros del mtodo como si fuesen variables normales
(y de esta forma acceder a los valores concretos con los que
se realiza cada llamada al mtodo).
Obviamente, el nmero y tipo de los parmetros indicados
en la llamada al mtodo ha de coincidir con el nmero y tipo
de los parmetros especificados en la definicin del mtodo.

Convenciones
Si varios mtodos utilizan los mismos parmetros, stos han de ponerse siempre en el

mismo orden.
No es aconsejable utilizar los parmetros de una rutina como si fuesen variables locales de
la rutina.(En otras palabras, los parmetros no los utilizaremos para almacenar resultados
parciales. )
Se han de documentar claramente las suposiciones que se hagan acerca de los valores
permitidos para los distintos parmetros de un mtodo. (Esta informacin debera figurar
en la documentacin del cdigo realizada con la herramienta javadoc) .
Slo se deben incluir los parmetros que realmente necesite el mtodo para efectuar su
labor.
Si un dato no es necesario para realizar un clculo, no tiene sentido que tengamos que
pasrselo al mtodo.
Las dependencias existentes entre distintos mtodos han de hacerse explcitas mediante el
uso de parmetros.
Si evitamos la existencia de variables globales (datos compartidos entre distintos
mdulos), el cdigo resultante ser ms fcil de entender.

Devolucin de resultados: La sentencia return


Cuando un mtodo devuelve un resultado, la

implementacin del mtodo debe terminar con una sentencia


return:
Como es lgico, el tipo de la debe coincidir con el tipo del

valor devuelto por el mtodo, tal como ste se haya definido


en la cabecera del mtodo.

Vous aimerez peut-être aussi