La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

PROGRAMACIÓN ORIENTADA A OBJETOS

Presentaciones similares


Presentación del tema: "PROGRAMACIÓN ORIENTADA A OBJETOS"— Transcripción de la presentación:

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

2 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.

3 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.

4 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.

5 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.

6 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).

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

8 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

9 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.

10 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.

11 ¿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.

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

13 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

14 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.

15 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.

16 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.

17 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.

18 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.

19 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

20 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.

21 EJEMPLOS DE OBJETO

22 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.

23 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).

24 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.

25 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.

26 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.

27 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.

28 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

29 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.

30 ENCAPSULACIÓN EN VB.NET

31 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)

32 ENCAPSULACIÓN EN VB.NET
Set Get

33 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.

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

35 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.

36 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.

37 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.

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

39 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

40 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:

41 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.

42 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”

43 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

44 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.

45 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.


Descargar ppt "PROGRAMACIÓN ORIENTADA A OBJETOS"

Presentaciones similares


Anuncios Google