Sunteți pe pagina 1din 13

Programacin Orientada a Objetos

2011

Unidad 4. Mtodos Competencias especficas. Utilizar tcnicas para la implementacin de mtodos en la solucin de problemas. Aplicar la sintaxis para la implementacin de mtodos en un lenguaje orientado a objetos. Aplica los conceptos de sobrecarga y encapsulamiento en la solucin de problemas.

Unidad 4 Mtodos

Tema

Subtemas 4.1 Definicin de mtodo. 4.2 Estructura de mtodo. 4.3 Valor de retorno. 4.4 Declaracin de mtodo. 4.5 mbito y tiempo vida de variables. 4.6 Argumentos y paso parmetros. 4.7 Sobrecarga mtodos. 4.8 Encapsulamiento un un

un de de de

Introduccin. En una clase, cada mtodo realiza una tarea relativamente autnoma. Este permite que los programadores puedan dividir un problema complejo en varias piezas ms pequeas y manejables. Una vez que el mtodo se ha escrito y se ha probado correctamente, el programador ya no necesita preocuparse por su funcionamiento interno.

4.1 Definicin de un mtodo. Es una abstraccin de una operacin que puede hacer o realizarse con un objeto. Son las funcionalidades asociadas a los objetos. Es un conjunto de instrucciones que realiza una determinada tarea y son similares a las funciones de los lenguajes estructurados.

1 L.I NORMA HILDELISA JIMNEZ ALOR

Programacin Orientada a Objetos


Tipos de mtodos.

2011

- Mtodos de clase Para poder invocar un mtodo, primero es necesario definirlo. La definicin del mtodo proporciona los detalles sobre el modo de realizar las tareas. Dado que cada mtodo es un fragmento de cdigo autnomo, puede definir sus propias variables y mtodos. Cuando la definicin de un mtodo viene precedida por la palabra clave static, recibe el nombre de mtodo static. La diferencia fundamental entre los mtodos de clases normales y los mtodos static es que stos operan en la clase, mientras que los normales lo hacen en las instancias de la clase.

- Mtodos de instancia Los mtodos de instancia operan sobre las variables de instancia de los objetos pero tambin tienen acceso a las variables de clase. La sintaxis de llamada a un mtodo de instancia es: nombreObjeto.nombreMetodo(parametros); // Llamada tpica a un mtodo de instancia Todas las instancias de una clase comparten la misma implementacin para un mtodo de instancia. La instancia que hace la llamada al mtodo es siempre un parmetro o argumento implcito. Dentro de un mtodo de instancia, el identificador de una variable de instancia hace referencia al atributo de la instancia concreta que hace la llamada al mtodo (suponiendo que el identificador del atributo no ha sido ocultado por el de un parmetro). Se llama a un mtodo de la misma clase simplemente con el nombre del mtodo y los parmetros entre parntesis.

2 L.I NORMA HILDELISA JIMNEZ ALOR

Programacin Orientada a Objetos


4.2 Estructura de un mtodo.

2011

4.3 Valor de retorno. En Java existe una serie de reglas para el retorno de valores en los mtodos. Resumidamente son: En un mtodo que devuelve un objeto (de hecho, una referencia), se puede devolver null. public Button mtodo() { return null; } Un array (o arreglo) es un tipo de retorno legal. public String mtodo() { return new String[]={Hugo, Paco, Luis}; } Un mtodo con tipo de retorno void no devuelve nada. public void inicializar() { return; }

3 L.I NORMA HILDELISA JIMNEZ ALOR

Programacin Orientada a Objetos

2011

En un mtodo que devuelve un tipo de dato primitivo, se puede devolver cualquier valor o variable que pueda ser implcitamente convertida hacia el tipo de retorno declarado. public int Turno() { char c=c; return c; } En un mtodo con un tipo de dato primitivo como retorno, se puede devolver cualquier valor o variable que pueda ser casteada hacia el tipo de retorno declarado. public int Peso() { float f=79.5f; return (int)f; } En un mtodo con un objeto como tipo de retorno, se puede devolver cualquier tipo de objeto que puede ser implcitamente convertido hacia el tipo de retorno declarado.

4.4 Declaracin de un mtodo. Sintaxis:


<modificadores de acceso> <tipo de dato de retorno> <nombre del mtodo>( arg1, arg2,...) { Cuerpo del mtodo; }

Explicacin de cada uno de los componentes de un mtodo: Nombre del mtodo: el que desee el programador, pero que respete las reglas de identificadores. Nmero y tipo de argumentos asociados al mtodo: Los argumentos pueden ser tanto variables primitivas como variables referenciadas. Las variables primitivas se emplean para almacenar nmeros, caracteres o valores lgicos, mientras que las referenciadas estn asociadas a objetos de clases. Tipo de dato de retorno o tipo de dato que devuelve el mtodo:
4 L.I NORMA HILDELISA JIMNEZ ALOR

Programacin Orientada a Objetos

2011

Dato asociado a una variable primitiva. Dato asociado a una variable referenciada. void. Es lo que debe ponerse cuando el mtodo no devuelve nada y, por ejemplo, simplemente muestra por consola un mensaje. Es el caso del mtodo "void mostrarMensaje()" del cdigo anterior. Modificadores de acceso: public, private, protected y sin modificador. Sirven para fijar el grado de accesibilidad de un mtodo. Adems de los de acceso, se tienen otros como static, synchronized, final, abstract, etc. que afectan de un determinado modo al mtodo. Cuerpo del mtodo: cdigo asociado al mtodo. NOTA 1: los argumentos asociados a un mtodo se consideran variables locales, es decir, accesibles slo desde el cuerpo del mtodo. NOTA 2: la palabra clave o reservada return se emplea para truncar la ejecucin de un mtodo cuando el tipo de dato que devuelve es void o para obtener lo que devuelve en el caso de que no sea void. Suele aparecer al final del mtodo. En Java, las palabras clave tienen un significado especial para el compilador y no pueden utilizarse como nombres de clases, mtodos o variables. 4.5 mbito y tiempo de vida de variables. En Java el cdigo fuente est dividido en partes separadas por llaves, denominas bloques. Cada bloque existe independiente de lo que est fuera de l, agrupando en su interior sentencias (expresiones) relacionadas. El mbito se produce dentro de un bloque de cdigo. El tiempo de vida es el tiempo que transcurre entre la declaracin de la variable y su destruccin. Ambiente local de referencia: Parmetros formales Variables locales Subprogramas definidos Ambiente no local de referencia, son identificadores que se pueden usar desde el subprograma, pero no se crean en l. Ambiente global de referencia, es la parte del ambiente no local. Una variable local oculta a la global del mismo nombre.
5 L.I NORMA HILDELISA JIMNEZ ALOR

Programacin Orientada a Objetos

2011

Ambiente predefinido de referencia. Algunos identificadores son predefinidos por el lenguaje. Alcance esttico y alcance dinmico. El alcance esttico de un identificador para una asociacin es el conjunto de activaciones de subprograma en las cuales la asociacin es visible. Una regla de alcance dinmico define las asociaciones en el curso dinmico de activaciones de subprogramas. En java se dispone de tres tipos de variables: Las variables miembro pertenecientes a una clase. Argumentos de un mtodo de la clase. Variables locales de un mtodo de la clase. Los argumentos trabajan como variables locales. class Ejemplo { int x; // variable miembro metodo (int y) { // argumento int z; // variable local x = y + z; } }

Las variables miembros son visibles desde cualquier parte de la clase. Los argumentos y variables locales solo son visibles dentro del mtodo al que pertenece, dejan de existir al finalizar el mtodo. Dentro de un mtodo, si coincide el identificador de un argumento o variable local con el de una variable miembro, slo se accede a la variable del mtodo.

6 L.I NORMA HILDELISA JIMNEZ ALOR

Programacin Orientada a Objetos

2011

4.6 Argumentos y paso de parmetros. Parmetros. Las variables en la lista de parmetros se separan con comas. Los parmetros de la lista en la especificacin del mtodo, son llamados parmetros formales. Cuando un mtodo es llamado, estos parmetros formales son reemplazados por los parmetros actuales. Los parmetros actuales deben ser equivalentes en tipo, orden y nmero a los parmetros formales.

Paso de parmetros por valor Cuando es invocado un mtodo con un parmetro de tipo primitivo, tal como int, el valor del parmetro actual es pasado al mtodo.

7 L.I NORMA HILDELISA JIMNEZ ALOR

Programacin Orientada a Objetos

2011

El valor actual de la variable fuera del mtodo no es afectado, independientemente de los cambios hechos al parmetro formal dentro del mtodo. Paso de parmetros por referencia Se pueden pasar objetos a mtodos como parmetros actuales. Cuando se pasa un objeto al mtodo la referencia del objeto es pasado al parmetro formal. Cualquier cambio al objeto local que ocurra dentro del mtodo afectar al objeto original que fue pasado como argumento. //EJEMPLO //Esta clase se usa para instanciar un objeto referencia. class MiClase { int varInstancia = 100; } // Clase principal class java515 { // Funcin para ilustrar el paso de parmetros void pasoVariables( int varPrim,MiClase varRef ) { System.out.println( "--> Entrada en la funcion pasoVariables" ); System.out.println( "Valor de la variable primitiva: "+varPrim ); System.out.println( "Valor contenido en el objeto: "+ varRef.varInstancia ); System.out.println( "-> Modificamos los valores" ); varRef.varInstancia = 101; varPrim = 201; System.out.println( "--> Todavia en la funcion pasoVariables" ); System.out.println( "Valor de la variable primitiva: "+varPrim ); System.out.println( "Valor contenido en el objeto: "+ varRef.varInstancia ); } public static void main( String args[] ) { // Instanciamos un objeto para acceder a sus mtodos java515 aObj = new java515();
8 L.I NORMA HILDELISA JIMNEZ ALOR

Programacin Orientada a Objetos

2011

// Instanciamos un objeto normal MiClase obj = new MiClase(); // Instanciamos una variable de tipo primitivo int varPrim = 200; System.out.println( "> Estamos en main()" ); System.out.println( "Valor de la variable primitiva: "+varPrim ); System.out.println( "Valor contenido en el objeto: "+ obj.varInstancia ); // Llamamos al mtodo del objeto aObj.pasoVariables( varPrim,obj ); System.out.println( "> Volvemos a main()" ); System.out.println( "Valor de la variable primitiva, todavia : "+ varPrim ); System.out.println( "Valor contenido ahora en el objeto: "+ obj.varInstancia ); } } 4.7 Sobrecarga de mtodos. La firma de un mtodo es la combinacin del tipo de dato que regresa, su nombre y su lista de argumentos. La sobrecarga de mtodos es la creacin de varios mtodos con el mismo nombre pero con diferentes firmas y definiciones. Java utiliza el nmero y tipo de argumentos para seleccionar cul definicin de mtodo ejecutar. Java diferencia los mtodos sobrecargados con base en el nmero y tipo de argumentos que tiene el mtodo y no por el tipo que devuelve. Tambin existe la sobrecarga de constructores: Cuando en una clase existen constructores mltiples, se dice que hay sobrecarga de constructores. La sobrecarga es utilizada en llama para implementar el polimorfismo

9 L.I NORMA HILDELISA JIMNEZ ALOR

Programacin Orientada a Objetos


class OverloadDemo { void test() { System.out.println("Sin parmetros"); } // Sobrecarga el mtodo test con un parmetro entero void test(int a) { System.out.println("a: " + a); }

2011

// Sobrecarga el mtodo test con dos parmetros enteros void test(int a, int b) { System.out.println("a y b: " + a + " " + b); }

// Sobrecarga el mtodo test con un parmetro double double test(double a) { System.out.println("double a: " + a); return a*a; } }

class Overload { public static void main(String args[]) { OverloadDemo ob = new OverloadDemo(); double result; // llama a todas las versiones de test() ob.test();
10 L.I NORMA HILDELISA JIMNEZ ALOR

Programacin Orientada a Objetos


ob.test(10); ob.test(10, 20); result = ob.test(123.2); System.out.println("Resultado de ob.test(123.2): " + result); } } La salida del programa ser: Sin parmetros a: 10 a y b: 10 20 a double: 123.2 Resultado de ob.test(123.2): 15178.240000000002

2011

4.8 Encapsulamiento Como se puede observar de los diagramas, las variables del objeto se localizan en el centro o ncleo del objeto. Los mtodos rodean y esconden el ncleo del objeto de otros objetos en el programa. Al empaquetamiento de las variables de un objeto con la proteccin de sus mtodos se le llama encapsulamiento. Tpicamente, el encapsulamiento es utilizado para esconder detalles de la puesta en prctica no importantes de otros objetos. Entonces, los detalles de la puesta en prctica pueden cambiar en cualquier tiempo sin afectar otras partes del programa. El encapsulamiento de variables y mtodos en un componente de software ordenado es, todava, una simple idea poderosa que provee dos principales beneficios a los desarrolladores de software:

Modularidad, esto es, el cdigo fuente de un objeto puede ser escrito, as como darle mantenimiento, independientemente del cdigo fuente de otros objetos. As mismo, un objeto puede ser transferido alrededor del sistema sin alterar su estado y conducta.

Ocultamiento de la informacin, es decir, un objeto tiene una "interfaz publica" que otros objetos pueden utilizar para comunicarse con l. Pero el objeto puede
11 L.I NORMA HILDELISA JIMNEZ ALOR

Programacin Orientada a Objetos

2011

mantener informacin y mtodos privados que pueden ser cambiados en cualquier tiempo sin afectar a los otros objetos que dependan de ello.

Los objetos proveen el beneficio de la modularidad y el ocultamiento de la informacin. Las clases proveen el beneficio de la reutilizacin. Los programadores de software utilizan la misma clase, y por lo tanto el mismo cdigo, una y otra vez para crear muchos objetos.

En las implantaciones orientadas a objetos se percibe un objeto como un paquete de datos y procedimientos que se pueden llevar a cabo con estos datos. Esto encapsula los datos y los procedimientos. La realidad es diferente: los atributos se relacionan al objeto o instancia y los mtodos a la clase. Por qu se hace as? Los atributos son variables comunes en cada objeto de una clase y cada uno de ellos puede tener un valor asociado, para cada variable, diferente al que tienen para esa misma variable los dems objetos. Los mtodos, por su parte, pertenecen a la clase y no se almacenan en cada objeto, puesto que sera un desperdicio almacenar el mismo procedimiento varias veces y ello va contra el principio de reutilizacin de cdigo.

12 L.I NORMA HILDELISA JIMNEZ ALOR

Programacin Orientada a Objetos

2011

FUENTES DE INFORMACIN LuAuF: Luciano (s.f). Valores de retorno en mtodos de Java, s.l. [en lnea]. Recuperado el 6 de Junio de 2011 de http://luauf.com/2008/04/19/valoresde-retorno-en-metodos-de-java/ Fundamentos de programacin en Java (s.f). Ambito y tiempo de vida de variables, s.l. [en lnea]. Recuperado el 9 de Junio de 2011 de http://www.slideshare.net/demogorgon/fundamentos-de-programacion-enjava. C. Martnez, Ivette(s.f). Argumentos y paso de parmetros, s.l. [en lnea]. Recuperado de www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r71276.PPT WebZip (s.f).Mtodos, s.l. [en lnea]. Recuperado el 9 de Junio de 2011 de http://dis.um.es/~bmoros/Tutorial/parte5/cap5-5.html. Programacin con Java (s.f). Sobrecarga de mtodos y constructores, s.l [en lnea]. Recuperado el 13 de Junio de 2011 de http://profesores.fib.unam.mx/carlos/java/java_basico4_6.html Programacin con Java (s.f). Encapsulamiento, s.l [en lnea]. Recuperado el 13 de Junio de 2011 de http://profesores.fib.unam.mx/carlos/java/java_basico3_3.html Otero, Mari Carmen (s.f). Leccin 2. Encapsulamiento, s.l. [en lnea]. Recuperado el 13 de Junio de 2011 de www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r53095.PPT

13 L.I NORMA HILDELISA JIMNEZ ALOR

S-ar putea să vă placă și