Este documento describe los conceptos fundamentales de la programación orientada a objetos, incluyendo clases y objetos, encapsulamiento, herencia, polimorfismo, abstracción y reutilización de código. Define una clase como un tipo de dato definido por el usuario que incluye atributos y métodos, y un objeto como una instancia de una clase.
2. Programación Orientada a Objetos
CLASES Y OBJETOS
ENCAPSULAMIENTO
HERENCIA
POLIMORFISMO
ABSTRACCIÓN
REUTILIZACIÓN DE CÓDIGO
CONSTRUCTOR Y DESTRUCTOR
3. ¿Qué es una clase?
Tipo de dato compuesto definido por el usuario.
Incluye datos (atributos) y operaciones o métodos
Una clase agrupa objetos que son idénticos (tienen los
mismos atributos y ofrecen las mismas operaciones) salvo
en su estado concreto en un momento dado.
• Los atributos representan los datos internos del
objeto.
• Las métodos son funciones (operaciones) y
representan su comportamiento: los mensajes que pueden
recibir y procesar de otros objetos.
Las clases definen estados como variables de instancia
(vbles miembro) y los comportamientos como métodos de
instancia.
Las clases NO consumen espacio de memoria.
4. Ejemplo : clase Persona
Tiene 3 variables miembro o
atributos:
nombre,
edad,
profesión
Tiene 3 métodos: funciones
6. ENCAPSULACIóN
Las variables miembro de una clase sólo pueden ser accedidas
por miembros de la misma clase.
Los atributos están encapsulados.
La encapsulación es un proceso de encapsular código y
datos en una sola unidad.
Es como una cápsula que contiene una mezcla de varios
medicamentos, y es una técnica que ayuda a mantener protegidas
las variables de instancia.
Esto se puede lograr mediante el uso de private, modificadores
de acceso a los que no puede acceder nada fuera de la clase. Para
acceder a los estados privados de manera segura, tenemos que
proporcionar métodos públicos de obtención y
establecimiento. (En Java, estos métodos deben seguir los
estándares de nomenclatura de JavaBeans).
8. Objetos
Cada una de las instancias de una clase tiene su propio
estado y se puede representar como una entidad única
en el programa. A esta entidad única se le llama objeto.
Cada objeto pertenece a una clase particular que
define sus características y su comportamiento.
Dada una clase, se pueden crear tantos objetos de esa
clase como se quieran.
9. Ejemplo de objetos y clases:
Una clase es un molde a partir del cual crear objetos
10. CONSTRUCTOR Y DESTRUCTOR DE
CLASE
Constructor -> Función miembro que es
automáticamente invocada cada vez que se define un
objeto, su objetivo es la inicialización del mismo. Toma el
mismo nombre que la clase, puede recibir parámetros y
podemos tener varios constructores definidos.
Destructor -> Función miembro invocada
automáticamente cada vez que se destruye un objeto. Su
objetivo es realizar operaciones como liberación de
memoria, cerrar ficheros abiertos, etc. Toma el mismo
nombre de la clase comenzado primero por el carácter "~",
no toma parámetros y no admite la sobrecarga (sólo puede
existir uno en cada clase).
11. Herencia
Se pueden definir clases descendientes de una clase
padre.
La clase hija hereda los atributos y métodos de la clase
padre.
La herencia es un mecanismo para definir similitud
entre clases, en el que se enlazan una clase base y una
o varias clases derivadas
La clase Base contiene todas las características
(atributos) y comportamientos (métodos) comunes,
compartidas por las clases derivadas (el núcleo de las
clases “similares”
12. Herencia
Las clases derivadas Circulo, Cuadrado y Triángulo heredan de la clase Forma.
Pero también pueden redefinir metodos o tener los suyos propios. Y sus propios
atributos.
13. Modelado de clases: UML
UML es un lenguaje de modelado
creado para el desarrollo de sistemas
con lenguajes orientados a objetos.
Emplea una notación para expresar
clases, atributos, métodos, herencia
entre clases…
Formal
Conciso
Completo
Escalable, estándar
15. POLIMORFISMO
Variable que puede referirse a instancias de clases
diferentes durante lea ejecución del programa.
Las referencias polimórficas tiene un tipo dinámico,
que cambia a lo largo de la ejecución del programa
16. REUTILIZACIÓN DE CÓDIGO
La reutilización de código consiste en aprovechar lo
que ya tenemos programado (así como aprovechar lo
que han programado otros) para así usarlo en nuestros
proyectos y ahorrarnos escribir el código.
El código de una clase es reutilizado por cada
instancia de objetos de esa clase.