PROGRAMACIÓN ORIENTADA A OBJETOS

Slides:



Advertisements
Presentaciones similares
Unidad 3 Lenguajes .Net y POO
Advertisements

Curso de Java Capitulo 7: Continuación Poo Profesor:
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
PROGRAMACION ORIENTADA A OBJETOS
Tomado de:
Orientación a Objetos con Java SE
Programación Orientada a Objetos (P.O.O.)
Introducción 1 Puntos Clave –La orientación a objetos representa un cambio radical en los métodos tradicionales de creación de software –Los métodos tradicionales.
La Programación Orientado a Objetos
POO Santiago, Mayo 2004 TRABAJO DE INVESTIGACIÓN POO Programación Orientada a Objetos CENAFOM Carolina Bravo V. Jaime Jofré B.
Tipo de Dato Abstracto Tipos de datos:
GENERACIONES DE LENGUAJES DE PROGRAMACIÓN
Aplicación del paradigma orientado a objetos
PROGRAMACION ORIENTADA A OBJETOS
ORIENTADO A OBJETOS ESTUDIANTE JESSICA LORENA LEAL MEDINA INGENIERIA DE SOFTWARE PROGRAMA INGENIERIA DE SISTEMAS UNIVERSIDA COOPERATIVA DE COLOMBIA NEIVA-HUILA.
UNIDAD I. INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA.
Programación orientada a objetos Rosemary Torrico Bascopé.
POO (Programación Orientada a Objetos)
METODOLOGIA DE LA PROGRAMACION
Introducción a Java II.
UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
UNIDAD 2:Crear, abrir y cerrar una base de datos Hacer clic sobre la opción Nuevo de la pestaña Archivo. Se mostrarán las distintas opciones para nuevos.
Fundamentos de Programación
PROGRAMACIÓN PROCEDIMENTAL
Programación Orientada a Objetos
ELO-329: Diseño y Programación Orientados a Objetos 1 Conceptos ELO329: Diseño y Programación Orientados a Objetos.
DEFINICIÓN  Es una forma de entender un problema identificando las entidades principales que se encuentran en el.  Es una forma de desarrollar un sistema.
Clase 03 ELEMENTOS DE COMPUTACIÓN Contenidos Objeto Clase Atributo Método Instancia Herencia Polimorfismo UML.
Módulo 7: Programación Orientada a Objetos en Visual Basic 2005.
Sara Isabel Osorio Alacraz Ana Isabel Vallejo Grisales
INSTITUTO TECNOLOGICO DE MINATITLAN ASIGNATURA: FUNDAMENTOS DE PROGRAMACION DOCENTE: JOSE ANGEL TOLEDO ALVAREZ ALUMNA: ALEJANDRA OSORIO ARVISU SEMESTRE:
Programación Orientada a Objetos
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
Programación Orientada a Objetos (P.O.O.)
Facultad de Ingeniería
TEMA 9: DIAGRAMA DE CLASE EN UML
Programación Orientada a Objeto
PROGRAMACION ORIENTADA A OBJETOS
Clasificación de Diagramas
Visual Basic FUNCIONES Y PROCEDIMIENTOS
POO U1: INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS.
Ing. Esp. Ricardo Cujar. Programación Orientada a Objetos  Modelo de desarrollo de software.  Modo de pensar del hombre y no de la máquina.  Abstracción.
Programación orientada a objetos
UNIVERSIDAD TECNICA DE BABAHOYO EXTENSION DE QUEVEDO  Espinales Lisseth G RUPO N º 2 Temas:  Herencia  Polimorfismo  Encapsulamiento  2 Ejemplos Estudiante.
Universidad Tecnológica de Izúcar de Matamoros Programa Educativo: Tecnologías de la Información Asignatura: Base de datos para aplicaciones Tema: Base.
Programación Orientada a Objetos. Es importante aclarar desde un principio la diferencia que existe entre programación orientada a objetos y un lenguaje.
PROGRAMACIÓN IV INTRODUCCIÓN.
Tipo de relación entre clases Es uno de los aspectos que distinguen el paradigma de orientación a objetos frente a otros paradigmas. Mecanismo que,
UNIVERSIDAD TECNOLÓGICA DE IZÚCAR DE MATAMOROS TECNOLOGÍAS DE LA INFORMACION Y COMUNICACIÓN BASE DE DATOS PARA APLICACIONES MTRO. GONZALO ROSAS CABRERA.
Análisis y Diseño de Aplicaciones 3º Educación Media Tecnológica
La Programación Orientado a Objetos
Clases “ Es una Abstracción de un elemento del mundo real ”
Paradigma Orientado a Objetos
Herencias Conceptos básicos i
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Prof. Manuel B. Sánchez. Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno.
Programación Orientada a Objetos Unidad 5. Los objetos son entidades que combinan estado Contiene toda la información denominados atributos REPASO Cada.
2015-BM5A. Introducción Durante años, los programadores se han dedicado a construir aplicaciones muy parecidas que resolvían una y otra vez los mismos.
PARADIGMA viene del Griego Paradeima = Modelo. Un paradigma es el resultado de los usos, y costumbres, de creencias establecidas de verdades a medias,
:: Prof. Yeniffer Peña Introducción a JAVA Presentación Programación I.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 3 – Diseño de Programas.
Las interfaces Predicate y Function Versión Unidad Didáctica 17 Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos.
Prof. Manuel B. Sánchez.  El origen del término polimorfismo es simple: proviene de las palabras griegas poly (muchos) y morphos (forma) multiforme.
METODOS DE PROGRAMACION I Ing. Vania Flores Pinto.
Prof. Manuel B. Sánchez. Es un mecanismo y uno de los pilares de la POO que permite definir nuevas clases a partir de otras preexistentes. La Herencia.
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
Introducción Todos los lenguajes de programación son distintos entre si. Sin embargo, pueden ser agrupados según la forma de pensar y estructurar los.
PROGRAMACIÓN ORIENTADA A OBJETOS
Transcripción de la presentación:

PROGRAMACIÓN ORIENTADA A OBJETOS POO PROGRAMACIÓN ORIENTADA A OBJETOS Docente: Rafael Mourglia

INTRODUCCIÓN La POO (o OOP de sus siglas en inglés) no es un lenguaje de programación, sino un paradigma y puede aplicarse a cualquier lenguaje. Hoy en día está disponible en mayor o menor medida en todos los lenguajes tradicionales (C se ha convertido en C++, Pascal en Delphi, VB 6.0 incorporaba parte de la POO y actualemnte VB.NET se encuentra enteramente orientado a objetos No aparece un lenguaje nuevo sin que incluya OOP (como es el caso de Java). Es por esto que intentaremos que todo lo que aquí se diga pueda ser aplicado a cualquier lenguaje OOP.

PARADIGMAS DE PROGRAMACIÓN “Un paradigma de programación indica un método de realizar cómputos y la manera en que se deben estructurar y organizar las tareas que debe llevar a cabo un programa ” se asocian a un determinado estilo de programación. Los lenguajes de programación suelen implementar, a menudo de forma parcial, varios paradigmas.

PARADIGMA IMPERATIVO Describe cómo debe realizarse el cálculo, no el porqué. Un cómputo consiste en una serie de sentencias, ejecutadas según un control de flujo explícito, que modifican el estado del programa. Las variables son celdas de memoria que contienen datos (o referencias), pueden ser modificadas, y representan el estado del programa. La sentencia principal es la asignación.

PARADIGMA IMPERATIVO Programación lineal Cada línea de programa debe ir precedida de un identificador (una etiqueta) para poder referenciarla, para este ejemplo hemos utilizado números, aunque podría utilizarse cualquier otro identificador.

PARADIGMA IMPERATIVO Programación estructurada Se busca que el programador elabore programas sencillos y fáciles de entender. Para ello, la PE hace uso de tres estructuras básicas de control: Estructura Secuencial Estructura Selectiva Estructura Repetitiva (ó Iterativa) Existe un teorema fundamental, el cual afirma que cualquier programa, puede ser elaborado utilizando únicamente las tres estructuras básicas (secuencia, selección, iteración).

PARADIGMA IMPERATIVO Ejemplo programación lineal Ejemplo programación estructurada

PARADIGMA DECLARATIVO Describe que se debe cálcular, sin explicitar el cómo. No existe un orden de evaluación prefijado. No existe sentencia de asignación. Ejemplo prolog, Maude, SQL

PARADIGMA ORIENTACIÓN A OBJETOS Ofrece mucho mayor dominio sobre el programa liberándonos aún más de su control. Hasta ahora, el control del programa era tarea del programador, quien tenía que controlar y mantener en su mente cada proceso que se realizaba y los efectos colaterales que pudieran surgir entre distintos procesos, lo que llamamos colisiones.

PARADIGMA ORIENTACIÓN A OBJETOS En POO, el programa se controla a sí mismo y la mente del programador se libera enormemente pudiendo realizar aplicaciones mucho más complejas al exigir menor esfuerzo de atención, ya que los objetos son entidades autónomas que se controlan a sí mismos. Los objetos nos impiden mezclar sus datos con otros métodos distintos a los suyos.

¿QUÉ NO ES LA POO? No es un sistema de comunicación con los programas basados en ratones, ventanas, iconos, etc. Puesto que, normalmente, los lenguajes de POO suelen presentar estas características y habitualmente estos entornos suelen desarrollarse con estas técnicas, algunas personas tienden a identificar la POO a entornos de este tipo.

¿QUÉ NO ES LA POO? No es un un lenguaje. De hecho las técnicas de POO pueden utilizarse en cualquier lenguaje conocido.

PROGRAMACIÓN ORIENTADA AL OBJETO La POO, agrupa un conjunto de técnicas que nos permiten desarrollar y mantener mucho más fácilmente programas de una gran complejidad. Concéptos fundamentales: Clase Objeto Herencia Encapsulación Polimorfismo

DEFINICIÓN DE CLASE Es una abstracción que hacemos de nuestra experiencia sensible. El ser humano tiende a agrupar seres o cosas (objetos) con características similares en grupos (clases). Por ejemplo podemos reconocer un vaso en cuanto lo vemos, aún cuando sean muchos diferentes e incluso aun cuando ese modelo concreto de vaso, no lo hayamos visto nunca. El concepto de vaso es una abstracción de nuestra experiencia sensible.

DEFINICIÓN DE CLASE Como vemos, el ser humano tiende, de un modo natural a clasificar los objetos del mundo que le rodean en clases; son definiciones estructuralistas de la naturaleza.

DEFINICIÓN DE CLASE Una clase puede tener distintas características. En el caso del vaso puede tener una determinada forma, color, material o un dibujo que lo diferencie de otro. A estas características llamaremos atributos.

CLASE ABSTRACTA Una clase abstracta es aquella que construimos para derivar de ella otras clases, pero de la que no se puede instanciar. Por ejemplo, la clase mamífero, no existe como tal en la naturaleza, no existe ningún ser que sea tan solo mamífero, existen humanos, gatos, conejos, etc. Todos ellos son mamíferos, pero no existe un animal que sea solo mamífero.

CLASE ABSTRACTA Mamíferos Hervívoros Conejo Caballo Carnívoros Oso Gato Onivoros Humanos Perro Del mismo modo, la clase que se halla al inicio de la jerarquía de clases, normalmente es creada sólo para que contenga aquellos datos y métodos comunes a todas las clases que de ella derivan. En árboles complejos de jerarquías de clases, suele haber más de una clase abstracta.

DEFINICIÓN DE OBJETO Para POO: Es un conjunto de datos y métodos Según RAE: m. Todo lo que puede ser materia de conocimiento o sensibilidad de parte del sujeto, incluso este mismo. 2. m. Cosa Para POO: Es un conjunto de datos y métodos

DEFINICIÓN DE OBJETO Los datos (o propiedades) son lo que antes hemos llamado características o atributos, los métodos son los comportamientos que pueden realizar. Lo importante de un sistema POO es que ambos, datos y métodos están tan intrínsecamente ligados, que forman una misma unidad conceptual y operacional. En POO, no se pueden desligar los datos de los métodos de un objeto.

EJEMPLOS DE OBJETO

DEFINICIÓN DE HERENCIA Cualidad más importante de un sistema POO, permitiendo ahorrar tiempo de codificación. Como todos entendemos lo que es la herencia biológica, continuaremos utilizando este ejemplo.

DEFINICIÓN DE HERENCIA Mamíferos Hervívoros Conejo Caballo Carnívoros Oso Gato Onivoros Humanos Perro La clase Conejo, hereda cualidades (métodos) de todas las clases predecesoras (Hervívoros y Mamíferos) pero a su vez posee métodos propios. Hervívoros a su vez hereda de Mamíferos (clase predesesora).

DEFINICIÓN DE HERENCIA Veamos que hereda la clase Conejo de sus clases padres: Clase Que hereda Mamíferos Se alimenta de leche materna Hervívoros Come solo vegetales Conejos Uno de sus alimentos es zanahoria Por lo tanto podemos decir que un conejo se alimenta de leche materna, come vegetales, y su alimento preferido es la zanahoria.

DEFINICIÓN DE HERENCIA Cuando utilizamos herencia, es importante tener en cuenta que todo objeto hijo puede instanciarse dentro de un objeto del tipo padre.

DEFINICIÓN DE ENCAPSULACIÓN Una clase debe ser una estructura cerrada, no se debe poder acceder a ella si no es a través de los métodos definidos para ella. Por lo tanto todos los datos de una clase son privados y se accede a ellos mediante métodos públicos. Cada dato o atributo de una clase deberá tener un método accesor y/u otro modificador.

DEFINICIÓN DE ENCAPSULACIÓN Siguendo con el ejemplo de un auto (observándolo como objeto), actualmente es posible saber el estado general del mismo con solo ver un tablero. Si el auto tiene temperatura, habrá un “método” llamado termómetro que nos lo indica. De otra forma tendríamos que acceder al motor y comprobarlo manualmente.

ENCAPSULACIÓN EN VB.NET En VB.NET podemos (y debemos) aplicar el concépto de encapsulación de la siguiente forma. Definir atributos: Private _marca As String Private _color As String

ENCAPSULACIÓN EN VB.NET Para los métodos accesores y modificadores debemos definir las propiedades de la clase mediante la intrucción Property. La instrucción Property genera un método accesor Get y un método modificador Set. Por defencto una instrucción Property contiene un Get y un Set, pero es posible utilizar sólo uno de los dos.

ENCAPSULACIÓN EN VB.NET

ENCAPSULACIÓN EN VB.NET Al momento de establecer un valor a una propiedad y de obtenerlo, se hace de la misma forma que si fuera un atributo, solo que ahora estaremos accediendo a la propiedad (ya que el atributo se encuentra oculto)

ENCAPSULACIÓN EN VB.NET Set Get

DEFINICIÓN DE POLIMORFISMO Por polimorfismo entendemos aquella cualidad que poseen los objetos para responder de distinto modo ante el mismo mensaje. Tomemos las clases barco, avión y auto, todas ellas derivadas de la clase padre vehículo. Un vehículo cuenta con el método Desplazarse, el cual será heredado por las clases hijas.

DEFINICIÓN DE POLIMORFISMO Sin embargo, si bien todos son vehículos, cada objeto se desplaza de una forma distinta que cada una conoce.

DEFINICIÓN DE POLIMORFISMO En este caso si llamamos al métotodo Desplazarse desde Auto, se ejecutará el método de la clase padre, pero lo mismo pasará si lo ejecutamos desde Barco o Avión.

DEFINICIÓN DE POLIMORFISMO Para solucionar este problema, debemos sobreescribir el método de la clase padre en cada clase hija para que de esta forma un mismo métdo, en este caso Desplazarse realice distintas acciones dependiendo de cada objeto.

POLIMORFISMO - SOBRECARGA La sobrecarga puede ser considerada como un tipo especial de polimorfismo que casi todos los lenguajes de OOP incluyen. Varios métodos pueden tener el mismo nombre siempre y cuando el tipo de parámetros que recibe o el número de ellos sea diferente.

POLIMORFISMO - SOBRECARGA Por ejemplo la clase Hoja puede tener tantos método Escribir() como tipos de datos queramos escribir.

POLIMORFISMO - SOBRECARGA Luego al invocar la función, al momento de asignar los parámetros, nos mostrará las distintas opciones: 1 de 3: nos indica que existen 3 sobrecargas para el método Escribir

CONSTRUCTORES Para poder utilizar un objeto, previamente hemos de crearlo; esto es lo que hacemos mediante el constructor de la clase. Para esto se utiliza un operador especial proporcionado por el lenguaje de programación que normalmente se llama ‘New’. El constructor o los constructores son notados de una forma especial: En VB.NET:

CONSTRUCTORES Así, para crear un objeto de la clase Persona, llamado Juan, escribiremos lo siguiente: Dim Juan As Persona Juan = New Persona() Le estamos diciendo al método constructor que nos devuelva un nuevo objeto Persona.

CONSTRUCTORES Supongamos que este objeto tiene tres datos y que queremos darle valores a esos datos del objeto luego de creado: Edad, Estatura y Color_Ojos. Haremos lo siguiente: Juan.Edad = 32 Juan.Estatura = 180 Juan.Color_Ojos = “Marron”

CREAR CONSTRUCTORES Habitualmente, los constructores de clase se crean de tal modo que podamos hacer las dos cosas a la vez: crear el objeto y dar valores a sus datos, veamos cómo: Dim Juan As Persona Juan = New Persona(32, 180, “Marron”) Para esto el constructor en la clase Persona de crearà de la siguiente forma: Public Sub New(ByVal pEdad As Integer, ByVal pEstatura As Integer, ByVal pColor_Ojos As String) Edad = pEdad Estatura = pEstatura Color_Ojos = pColor_Ojos End Sub

VARIOS CONSTRUCTORES Normalmente las clases tiene más de un constructor, de esta forma podemos crear objetos e inicializarlos de distintas formas. Así, podemos tener un constructor de la clase Persona que recibe solo la edad, otro la edad y la estatura, otro la edad, la estatura y el color de ojos, etc. El número y tipo de constructores solo depende de nuestras necesidades y del sentido común.

CONSTRUCTOR ARGUMENTO CERO Existe un constructor especial al que se le llama "constructor argumento-cero" y es aquel que no recibe ningún parámetro. Él inicializa el objeto con los valores por defecto. De este modo, podríamos tener un constructor por defecto de la clase Persona que pusiera el dato edad a 30, la estatura a 175 y el Color-de-ojos a marrón. O todos los datos en cero, o simplemente el cosntructor vacío. En todos las clases siempre es conveniente crear un constructor de este tipo.