2. Clases
Definiciones
• Es un tipo de dato que contiene código,
funciones y datos.
• Permite encapsular todo el código y los
datos necesarios para gestionar un tipo
específico de un elemento de programa.
• Se dice común mente es “La Abstracción
de un Objeto”
3. • Un objetos es la instancia de una clase
• Según Booch, es “algo que tiene un
estado, un comportamiento y una
identidad”.
• Martin y Odell definen un objeto como
“cualquier cosa real o abstracta, en que
almacenan datos y operaciones que los
manipulan”…
Objetos
Definiciones
Demo {clase} D; {identificador};
4. • Se agrupan en tipos llamados clases
• Tienen datos internos que definen su estado
• Soportan la ocultación de datos
• Pueden heredar propiedades de otros objetos
• Pueden comunicarse con otros objetos por
medio de mensajes
• Tienen métodos que definen su comportamiento
Características de un Objeto
5. • Punto p; donde {Punto} es la clase y {p} es
el identificador de la clase.
• {.} es el operador de acceso a un
miembro. p.FijarCoordenada(100,200);
• Funciones miembro: funciones que
pertenecen a la misma clase.
• Modificadores de Acceso: Public,
Protected y Private
Objetos
Nomenclatura y Definiciones
6. Tipo Miembro de la
Misma Clase
Amiga (Solo
C++)
Miembro Clase
Derivada
Función No
Miembro
Private X X
Protected X X X
Public X X X X
Objetos
Modificadores de Acceso
Los modificadores de acceso determinan la visibilidad de los elementos de una clase
Los modificadores definen el principio de la Ocultación de Información
En C#/C++, si el modificador de acceso no es definido, se asume por defecto private
7. • El principio de ocultación indica que
toda la interacción con un objeto debe ser
restringida, para permitir que los detalles
de la implementación sean ignorados.
• El principio de encapsulamiento
significa que las estructuras de datos
internas o cualquier implementación no
puede ser accesible al usuario.
Objetos
Conceptos
8. • {::} operador de resolución de ámbito.
• {tipo retorno} {clase} :: {funcion(x,y)}
• Permite acceder a espacios de tipos de
nombres o bien a las declaraciones de
métodos de una clase
Objetos
Conceptos (Solo C++)
9. • Tipos de Funciones Miembro
– Constructores y Destructores
– Selectores (Getters y Setters)
– Operadores
– Iteradores
Objetos
Conceptos
C++: Cuando una función miembro se implementa fuera de la
clase por medio de un operador de resolución de ámbito se llama
función fuera de línea
10. • Constructores
– Default
– Alternativos o no default
– Existe la sobrecarga
• Destructores (C++) y la Recolección de
Basura
– El destructor se llama al invocar delete.
– O al final de la vida del main
Objetos
Conceptos
11. • Es la capacidad de un objeto, de utilizar
estructuras de daros o comportamientos
provistos por su antepasado o
ascendiente.
• El objetivo es la reutilización de código
para generar nuevas abstracciones.
• “una clase hereda sus características de
otra clase”
Comportamiento y Herencia
12. • Tipos de Herencia
– Herencia Simple
(Jerárquica)
– Herencia Múltiple*
(Malla / C++, Python)
– Solución a la
Herencia Múltiple???
Herencia
13. • Una clase que se crea a partir de otra
clase por medio de la herencia
• La clase de la que se hereda se llama
clase base
• Los modificadores de acceso delimitan las
características y comportamientos que se
pueden heredar
Herencia
Clase Derivada
14. • Métodos Virtuales. Permiten sobrescribir
comportamiento. Si no se sobrescribe, se
usa funcionalidad de la clase base.
• Métodos Tradicionales. Pueden ser
heredados o no dependiendo de los
modificadores de acceso.
Métodos y Herencia
15. • No pueden ser instanciadas directamente
• Son clasificadores de objetos
• Representan un nivel de abstracción más
alto
• Pueden contener métodos con
comportamiento codificado
• Pueden contener métodos abstractos
Herencia
Clase Base Abstracta
16. • En C# y Java para hacer una clase de
base abstracta, solo basta con definirla
como abstract.
• En C++ la clase de base abstracta se
define cuando esta posee al menos un
método virtual puro
– virtual int area () =0;
Herencia
Clase de Base Abstracta
17. • Por ende, es la propiedad de la POO que
le permite a cada objeto comportarse de
forma diferente al implementar su propio
comportamiento.
Polimorfismo