Está en la página 1de 22

INTRODUCCIÓN A LA

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
 Todo sistema abarca muchas clases y objetos
 Los objetos contribuyen en el comportamiento de un sistema
colaborando entre si
 La colaboración se logra a través de las relaciones
 Existen dos tipos principales de relaciones
 Asociación
 Agregación
 Composición

CLASES COMPUESTAS
 Las asociaciones representan las relaciones más generales entre clases, es decir,
las relaciones con menor contenido semántico.
 En general, las asociaciones son bidireccionales, esto es, no tienen un sentido
asociado.
 Ejemplo:
 Una persona es propietaria de uno o varios perros pero estos son solo de esta
persona.

CLASES COMPUESTAS
 Composición
 La composición implica que los componentes de un objeto sólo
pueden pertenecer a un solo objeto agregado, de forma que
cuando el objeto agregado es destruido todas sus partes son
destruidas también.
 Una empresa esta formada por empleados.

CLASES COMPUESTAS
 Agregación
 La agregación es una asociación con unas connotaciones
semánticas más definidas: la agregación es la relación parte-de,
que presenta a una entidad como un agregado de partes (en
orientación a objeto, un objeto como agregado de otros
objetos).
 Ejemplo:
 Una empresa tiene clientes

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;
 }

 public string Sumar(string s1, string s2)


 {
 string s = s1 + s2;
 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

También podría gustarte