Tema 1 Introducción A La Programación Orientada A Objetos
Tema 1 Introducción A La Programación Orientada A Objetos
Tema 1 Introducción A La Programación Orientada A Objetos
PROGRAMACIÓN
ORIENTADA A OBJETOS
Programación II
Objeto
Clase
Atributos y métodos
Encapsulación
Constructores
Destructores
Clases compuestas
Sobrecarga de funciones(métodos)
Sobrecarga de operadores
CONTENIDO
Informalmente, un objeto representa una entidad del mundo real
Entidades Físicas
(Ej.: Vehículo, Casa, Producto)
Entidades Conceptuales
(Ej.: Proceso Químico, Transacción Bancaria)
Entidades de Software
(Ej.: Lista Enlazada, Interfaz Gráfica)
Objeto: Componente o código de software que contiene en sí mismo tanto sus
características (campos) como sus comportamientos (métodos); se accede a través
de su interfaz o signatura.
OBJETO
Un objeto posee :
Estado
Comportamiento
Identidad
Estado
Lo que el objeto sabe
El estado de un objeto es una de las posibles condiciones en que
el objeto puede existir
El estado normalmente cambia en el transcurso del tiempo
El estado de un objeto es implementado por un conjunto de
propiedades
Comportamiento
Lo que el objeto puede hacer
El comportamiento de un objeto determina cómo éste actúa y
reacciona frente a las peticiones de otros objetos
Es modelado por un conjunto de mensajes a los que el objeto
puede responder (operaciones que puede realizar)
Se implementa mediante métodos
Identidad
Cada objeto tiene una identidad única, incluso si su estado es idéntico al de otro
objeto
Una clase es la descripción de un conjunto de objetos
Consta de métodos y datos que resumen características comunes de un
conjunto de objetos Se pueden definir muchos objetos de la misma clase
Una clase es la declaración de un tipo objeto
Las clases son similares a los tipos de datos y equivalen a modelos o plantillas
que describen cómo se construyen ciertos tipos de objetos
Cada vez que se construye un objeto a partir de una clase, estamos creando
lo que se llama una instancia de esa clase
CLASE
Los atributos describen el estado del objeto Un atributo consta
de dos partes:
Un nombre de atributo y un valor de atributo
Los objetos simples pueden constar de tipos primitivos, tales
como enteros, carácter, boolean, reales, o tipos simples
definidos por el usuario
Los objetos complejos pueden constar de pilas, conjuntos, listas,
array, etc
ATRIBUTOS Y MÉTODOS
Los métodos (operaciones o servicios) describen el comportamiento asociado
a un objeto
Representan las acciones que pueden realizarse por un objeto o sobre un
objeto
La ejecución de un método puede conducir a cambiar el estado del objeto o
dato local del objeto
Cada método tiene un nombre y un cuerpo que realiza la acción o
comportamiento asociado con el nombre del método
ATRIBUTOS Y MÉTODOS
Ocultamiento de información
Poder separar la interfaz de una clase de su implementación, o dicho en otras
palabras:
No es necesario conocer los detalles de cómo están implementadas las
propiedades para poder utilizarlas.
Los objetos funcionan a modo de caja negra en la que están empaquetados los
datos y las instrucciones para su manipulación, de las que conocemos solo lo
necesario para utilizarla
ENCAPSULAMIENTO
Permiten definir el nivel de acceso (visibilidad) de los miembros (atributos o
métodos) de una clase
Publico: Cualquier clase puede “ver” los miembros públicos de otra clase
Privado: Sólo la clase puede ver sus propios miembros privados
Existen otros dos modificadores para propósitos específicos (Paquete, Protegido)
MODIFICADORES DE ACCESO
Cuando se construye un objeto es necesario inicializar sus variables con valores
coherentes
La solución en los lenguajes orientados a objetos es emplear los constructores.
Un constructor es un método perteneciente a la clase que posee unas
características especiales:
Se llama igual que la clase.
No devuelve nada, ni siquiera void.
Pueden existir varios, pero siguiendo las reglas de la sobrecarga de funciones.
De entre los que existan, tan sólo uno se ejecutará al crear un objeto de la clase.
CONSTRUCTORES
Son un tipo especial de función miembro, estrechamente relacionados con los
constructores.
Son también funciones que no devuelven nada (ni siquiera void).
Tampoco aceptan ningún parámetro, ya que la destrucción de un objeto no
acepta ningún tipo de opción o especificación particular y es idéntica para todos
los objetos de la clase.
La misión más común de los destructores es liberar la memoria asignada por los
constructores
Los destructores son invocados automáticamente (de forma implícita)
DESTRUCTORES
Composición
Es el mecanismo en el cual una clase se construye a partir de
otros objetos de igual o distinto tipo, pudiéndolos combinar para
obtener la funcionalidad deseada. En la composición la nueva
clase, mantiene una relación “Usa/Tiene un” (Uses/Has a), con
los objetos que son parte de la clase.Una empresa esta formada
por empleados.
CLASES COMPUESTAS
La sobrecarga de métodos consiste en poner varios métodos con el mismo
nombre en la misma clase, pero siempre que su lista de argumentos sea distinta.
La sobrecarga de métodos permite definir dos o más métodos con el mismo
nombre, pero que difieren en cantidad o tipo de parámetros.
Como hemos visto el constructor es un método y como tal podemos
sobrecargarlo, es decir definir varios constructores con distintas cantidades o
tipos de parámetros.
SOBRECARGA DE MÉTODOS
public int Sumar(int x1, int x2)
{
int s = x1 + x2;
return s;
}
EJEMPLO
La sobrecarga de operadores en C# permite redefinir la acción de un
operador en relación a una clase.
El empleo de la sobrecarga de operadores debe hacerse con mucho
cuidado de no desvirtuar el concepto que representa dicho operador
Los operadores que pueden ser sobrecargados son los siguientes:
Operadores Tipo
+, -, !, ~, ++, --, true, Unarios
false
+, -, *, /, %, &, |, ^, <<, Binarios
>>
==, !=, <, >, <=, >= Comparación*
SOBRECARGA DE OPERADORES
*Operadores complementarios
Los operadores de comparación son un caso muy peculiar, ya que
es necesario siempre sobrecargarlos en pares: = y !=, < y >, <= y >=
Ya que de no hacerlo, nuestro programa no compilaría.
Ejemplo:
public static Complejo operator +(Complejo c1, Complejo c2)
{
…..
}
SOBRECARGA DE OPERADORES