jueves, 21 de febrero de 2008
jueves, 14 de febrero de 2008
Métodos (funciones) ¿para qué sirven?
Existen básicamente tres tipos de métodos:
Métodos constructores con los que se se inicializan los valores de los atributos en el momento de crear un objeto.
Métodos destructores, que son aquellos que eliminan los valores de los atributos directamente en la memoria RAM
Métodos comunes, los cuales dependen de lo que se desea que el objeto pueda realizar, es decir, son los métodos que se llaman cuando un objeto va a realizar una acción específica.
Existen unos métodos muy especiales , los cuales permiten modificar o ver los valores de los atributos de una clase, permitiendo que los objetos tengan un comportamiento natural (por ejemplo, todos somos humanos, pero todos somos diferentes...), estos métodos se conocen como gets y sets
Los métodos get permiten conocer el valor de un atributo
Los métodos set permiten modificar el valor de un atributo
Los métodos en realidad son funciones y tienen un comportamiento prácticamente idéntico a estas.Así que para la creación de métodos se debe conocer toda la teoría de funciones de programación, la cual veremos a continuación.
En programación, las funciones son algoritmos representados en código de un lenguaje específico como c++, java o php.
Así que para hacer métodos (funciones) tenemos que saber de algoritmia.
¿Qué es un algoritmo?
Un algoritmo es una serie ordenada y finita de instrucciones (procesos) que conducen a la solución de un problema.
En la vida diaria ejecutamos algoritmos. Por ejemplo, al preparar un plato de comida ejecutamos las instrucciones contenidas en la receta de cocina de dicho plato, este conjunto de instrucciones son en sí un algoritmo. Otro caso de algoritmo es el algoritmo matemático de Euclides para la obtención del máximo común divisor de dos números.
Si un algoritmo puede ser ejecutado por una computadora, se dice que es un algoritmo computacional; en caso contrario, se dice que es un algoritmo no computacional. Según esto, el algoritmo de Euclides es un algoritmo computacional; pero el algoritmo para preparar el plato de comida es un algoritmo no computacional. Para que un algoritmo pueda ser ejecutado por una computadora se necesita expresar el algoritmo en instrucciones comprensibles por la computadora, para esto se requiere de un determinado lenguaje de programación. Al algoritmo expresado en un determinado lenguaje de programación, se denomina función (En algunos libros también se habla de programa). Cuando un algoritmo expresado en un lenguaje de programación hace parte de una clase (y utiliza los atributos de la misma) se dice que ese algoritmo es un método de la clase.
Los algoritmos tienen las siguientes características:
- Debe ser preciso, es decir, cada proceso debe indicar de forma exacta que se tiene que hacer.
- Debe ser finito, es decir, debe tener un número limitado de procesos.
- Debe ser definido, es decir, debe producir los mismos resultados para las mismas condiciones de entrada.
Todo algoritmo está compuesto en tres partes:
- Entrada de datos.
- Proceso.
- Retorno de resultados.
Las variables son las que permiten almacenar los datos de entrada iniciales y luego cambian de acuerdo a lo que se ordene en cada proceso.
En programación orientada a objetos se busca representar los atributos de una clase mediante variables privadas, así que los atributos son en realidad variables.
Pero... ¿Qué es una variable?
Una variable es una localización o casilla en la memoria principal (RAM) que almacena un valor que puede cambiar en el transcurso de la ejecución de la función o método. Cuando un programa (o también conocido como aplicación) necesita almacenar un dato, necesita una variable. Toda variable tiene un nombre, un tipo de dato y un valor. Antes de poder utilizar una variable es necesario declararla especificando su nombre y su tipo de dato, Como los atributos son variables, entonces requieren esa misma declaración.
lunes, 11 de febrero de 2008
Programación orientada a objetos (una mirada inicial)
El paradigma de la programación orientada a objetos busca facilitar el proceso de creación de aplicaciones, mediante el uso del concepto de clasificación y objeto que todos usamos desde que somos niños.Este paradigma se basa en el hecho de que en el universo todo lo que vemos o persivimos se asume como objeto (las estrellas son objetos, los carros que vemos en las avenidas de las grandes ciudades son objetos, los perros y gatos son objetos, tu celular es un objeto, tu eres un objeto....) existe además la idea de que la unión de varios objetos pueden generar un nuevo objeto.....

tales objetos se pueden agrupar, de acuerdo a sus características y uso en clases. Así que un objeto no es más que una instancia de una clase, por ejemplo: Carlos es un hombre por lo tanto Hombre es una clase y Carlos es una instancia de esa clase.
Entonces, en resumen, en la programación orientada a objetos existen Clases y Objetos que se clasifican de acuerdo a la clase que pertenecen.
Las Clases son un instrumeto por el cual se puede clasificar uno o varios objetos
Los Objetos son todo aquello que es clasificable por una Clase...
Normalmente una clase en programación tiene una composición típica así:

Nombre de la clase: Normalmente es un sustantivo y empieza con Mayúscula
Atributos: Son las características que deben tener los objetos que pertenezcan a la clase. Son sustantivos y/o adjetivos, normalmente empiezan con minúscula so por ejemplo:
color, nombreUsuario, identificacion, telefono, etc. Nótese que en el caso de que un atributo requiera tener varias palabras siempre la primera letra de cada una empieza con mayúscula, a excepción de la primera...
Métodos: Son por lo general verbos e indican las cosas que PUEDE HACER un objeto de esa clase. por ejemplo si tenemos la clase Perro, podemos tener métodos como ladrar() o comer() en esa clase, Nótese la forma como se representa un método, con parentesis al final, esto es una simbología en programación que representa una función, así los métodos son realmente funciones...

Un objeto puede verse como una caja negra con botones (algo así como un equipo de sonido), dentro de la caja se encuentran toda serie de elementos (atributos y métodos) que son para el usuario PRIVADOS pero los botones de esa caja, métodos PÚBLICOS, permiten cambiar el comportamiento de estos atributos y métodos.

Hablemos de los métodos
Una función o método es un grupo de procesos que al final de su ejecución permiten dar un resultado,
Los métodos en realidad realizan diversos procesos en los que frecuentemente se utilizan los atributos de la clase a la que pertenecen.
Los métodos (funciones) son como el proceso que ocurre dentro de las máquinas de moler:
Los métodos solo son las acciones que puede realizar un objeto de una clase específica, así que la función en este caso se podría llamar moler() y pertenecería a la clase Molinomoler() tendría como retorno (return) la masa para hacer arepas :)
Cuáles son los atributos de Molino?
Se pueden usar los siguientes atributos para nuestra clase Molino:
nombre
dueño
altura
ancho
capacidadDelVaso
color
marca
referencia
Así siempre que tengamos un objeto de la clase Molino, podríamos definir cosas como:
su nombre (molino de la casa, el molino de la abuela, mi molino, etc.)
de quien es (es de mi mamá, de mi papá, es de Roberto, etc.)
cuales su altura (40cm, 50 cm, etc.)
cual es us ancho(25cm,...)
cual es su capacidad en su vaso (medio litro, un cuarto de litro, etc.)
Cual es su color (Plateado, cobre, etc.)
Cual es su marca (oster, philips, etc.)
Cual es su referencia (ajk34542 que es la que da la empresa fabricante...)
Adicionalmente a los métodos que representan las acciones posibles se añaden un método constructor y unos métodos conocidos como los get y set por cada atributo.
El método constructor busca inicializar los valores de los atributos en el momento mismo de la creación de un objeto perteneciente a esa clase.
Los métodos get permiten ver el contenido de los valores de los atributos
Los métodos set permiten modificar los valores de los atributos.
¿Por qué se crean estos métodos get y set?
Porque los atributos son PRIVADOS, es decir solo pueden ser modificados por métodos dentro de la misma clase, mientras que los métodos get y set que se tienen por cada atributo, son públicos y pueden ser usados por fuera de la clase. Es decir, son como los botones de nuestro equipo de sonido que permiten aumentar o disminuir el volumen o cambiar de emisora, pero los que realmente hacen ese proceso son atributos y métodos ocultos para el usuario del equipo.
