programacion orientada a objetos

27
LOGO Seminario de Programación de Computadoras Unidad 8 Programación Orientada a Objetos Octavio Ulises Pérez Siliceo

Upload: octavio-perez-siliceo

Post on 13-Jan-2017

82 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: Programacion Orientada a Objetos

LOGO

Seminario de Programación de Computadoras

Unidad 8

Programación Orientada

a ObjetosOctavio Ulises Pérez Siliceo

Page 2: Programacion Orientada a Objetos

Agenda

Abstracción , Polimorfismo

Encapsulamiento

Constructores, Herencia

Atributos , Métodos

POO, Objetos, Clases

Page 3: Programacion Orientada a Objetos

La POO es…

“Un método de implementación en el que los programas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representa una instancia de alguna clase y cuyas clases son todas miembros de una jerarquía de clases unidas mediante relaciones”

Grady Booch

Page 4: Programacion Orientada a Objetos

El Modelo de Objetos

Objetos en el mundo real Atributos Propiedades Métodos Abstracción Clases y Objetos Encapsulamiento Mensajes Constructores Destructor

Contempla los siguientes elementos

Herencia Simple MúltipleClases abstractasClases parametrizadasInterfacesSobre-escrituraSobrecargaPolimorfismo

Page 5: Programacion Orientada a Objetos

ObjetosEn el mundo real

Los objetos poseen características que los distinguen entre sí.

Los objetos tienen acciones asociadas a ellos.

Page 6: Programacion Orientada a Objetos

Ejemplo: Objeto Perro

Características: Nombre: “TOTO” Raza: Labrador“” Color: “Marrón” ….etc… Acciones: Ladrar [“Guau Guau”] Comer [“Chomp Chomp”] Dormir [“Zzzzzzzz”] …etc…

www.thmemgallery.com

TOTO:PERRONombre: TOTORaza:LabradorColor:MarrónComer()Ladrar()Dormir()

Page 7: Programacion Orientada a Objetos

Objetos

AtributosValor de sus

características

MétodosAcciones quepuede realizar

IdentidadPertenece a una clase y tiene un nombre único

Objetos

Page 8: Programacion Orientada a Objetos

Clase

Es una DESCRIPCIÓN

de lascaracterísticas y acciones para

un tipo de objetos.

Clase

Una clase NO ES UN OBJETO.

Es solo una PLANTILLA,

plano o definición para crear objetos.

Page 9: Programacion Orientada a Objetos

Clase

Modelo

Plantilla

Esquema A partir de una clase se pueden crear muchos objetos independientes con las mismascaracterísticas.

Contiene todas las características comunes deese conjunto de objetos

Clase

Page 10: Programacion Orientada a Objetos

Clase : Objeto

Datos

Es Creado a partir De Una

clasePoseeNombre

único

InstanciaDe unaclase

CombinaLo siguiente

Un Objeto

Funciones

Page 11: Programacion Orientada a Objetos

Es la creación o manifestación concreta de un objeto a partir de su clase

Instancia

Instancia(clase

Carros)

Page 12: Programacion Orientada a Objetos

Representan los datos de los objetos

Atributos

1

Son controlados a través de ladeclaración de variables

2

Es importante identificar eltipo de dato

3Se debe seleccionar sólo aquellos atributos necesarios para el modelo planteado(abstracción)

Variables

De InstanciaSe crea una copia por

cada objeto creadoDe Clase (Estáticas)

Una sóla variable para todos los objetos generados

Page 13: Programacion Orientada a Objetos

Métodos y Mensajes

Anatomía de un mensaje

Identidad del receptor Método que ha de ejecutar Información especial (argumentos o parámetros)

Ejemplos: miTelevision.Encender( ) miTelevision.Apagar( ) miTelevision.CambiarCanal( 45 ) miPerro.Comer(“Croquetas”) miEmpleado.Contratar (“Juan”, 3500) miFactura.Imprimir( )

Son las acciones que realizan los objetos y definen su comportamiento

Es el conjunto de mensajes a los cuales puede responder un

objeto

Protocolo del Objeto

Page 14: Programacion Orientada a Objetos

Mensajes = Comunicación entre objetos

Los objetos realizan acciones cuando reciben mensajes

Oprime botón de encendido

Envía orden de encendido

Mensaje recibido: Enciende TVAcción realizada: envía orden de encendido

Mensaje recibido: EncenderAcción realizada: Muestra Imagen

Page 15: Programacion Orientada a Objetos

Constructores y Destructores

Destructor.- Operación que libera el estado de un objeto y/o destruye el propio objeto.

Constructor.- Operación queCrea un objeto y/o inicializa su estado.

Los objetos ocupan espacio en memoria; existen en el tiempo y deben crearse [instanciarse] y destruirse:

Page 16: Programacion Orientada a Objetos

Constructor

No puede: Prototiparse, devolver valor, ni invocarse explícitamente

Es un método especial de la clase que sirve para crear objetos, inicializar atributos y propiedades; Debe declararse publico y llamarse igual que su clase; puede recibir parámetros y sobrecargarse

En una clase pueden haber múltiples constructores (sobrecarga)

Page 17: Programacion Orientada a Objetos

Constructor

class Persona{ public string Nombre; public Persona() { Nombre = "Desconocido";}

public Persona(string nombreDeLaPersona) { Nombre = nombreDeLaPersona; }}

class Programa{ static void Main() { Persona unaPersona = new Persona(); System.Console.WriteLine(unaPersona.Nombre);

Persona otraPersona = new Persona("Ramon"); System.Console.WriteLine(otraPersona.Nombre); System.Console.ReadLine(); }}

Page 18: Programacion Orientada a Objetos

HerenciaCapacidad para utilizar características previstas en antepasados o ascendientes.

Permite construir nuevas clases a partir de otras ya existentes, permitiendo que éstas les “transmitan” sus propiedades.

Objetivo: Reutilización de código.

Page 19: Programacion Orientada a Objetos

Herencia (Tipos)

Herencia Simple.- Una clase puede tener sólo un ascendiente. [Una subclase puede heredar de una única

clase].

Herencia múltiple (en malla).- Una clase puede tener más de un ascendiente inmediato. [Heredar de más de una clase].

Page 20: Programacion Orientada a Objetos

Encapsulamiento

El encapsulamiento oculta detalles de la implementación de un objeto.

Los objetos encapsulan lo quehacen. Ocultan la funcionalidadinterna de sus operaciones, de otros objetos y del mundo exterior.

Permite incluir en una sola entidad información y operaciones que controlan dicha información.

Permite: Componentes públicos [Accesibles, Visibles]. Componentes privados [No accesibles, Ocultos]. Restricción de accesos indebidos.

Page 21: Programacion Orientada a Objetos

Abstracción

Se refiere a “quitar” atributos, propiedades

y métodos de un objeto y quedarse solo con aquellos que sean necesarios (relevantes

para el problema a solucionar).

La abstracción se centra en las

características esenciales de algún objeto, en relación a la perspectiva del

observador.

Se define como la capacidad para

examinar algo sin preocuparse de sus

detalles internos

De datos o Funcional

Page 22: Programacion Orientada a Objetos

PolimorfismoEs el uso de un mismo nombre para representar o significar más de una acción.

La sobrecarga es un tipo de Polimorfismo.

Que un mismo mensaje pueda producir acciones totalmente diferentes cuando se recibe por objetos diferentes del mismo tipo.

Un usuario puede enviar un mensaje genérico y dejar los detalles de la implementación exacta para el objeto que recibe el mensaje en tiempo de ejecución. Para este caso, se utiliza herencia y sobrescritura (Override).

Page 23: Programacion Orientada a Objetos

Lenguajes Orientados a Objetos

Lenguajes

JavaEiffelC++

Smalltalk C# Pyton Ruby

Page 24: Programacion Orientada a Objetos

Ejemplo desde Visual C# 2010

Superclase o Clase Padre

Subclases o Clases hijas

Page 25: Programacion Orientada a Objetos

Conclusiones

Después de esta breve explicación podemos concluir que la programación orientada a objetos, es un conjunto de técnicas que pueden utilizarse para desarrollar programas eficientemente. Los objetos son los elementos principales de construcción. El paradigma de la Orientación a Objetos es el estilo aún dominante de programación, descripción y modelado de hoy en día

Page 26: Programacion Orientada a Objetos

Bibliografía.

Add Your Title

Add Your Title

Herbert SchildtC# Manual de referenciaEd. Mc Graw Hill2005

Fco. Javier CeballosEciclopedia de Microsoft Visual C#Ed. Alfaomega2007

Bruno López TakeyasProgramación Orientada a Objetos en C# .NET.http://www.itnuevolaredo.edu.mx/Takeyas2016

Page 27: Programacion Orientada a Objetos

LOGOOctavio Ulises Pérez Siliceo