Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Programación Orientada a Objetos I
2
Antes de intentar aprender algo ten presente…
lo complejo, alguna vez… fue simple, entiende lo simple.
3
El problema está en la técnica,
no en la herramienta
4
Si no eres nuevo en esto de programar, pero aún no entiendes la orientación a objetos…
deshazte de vicios y empieza nuevamente!
5
Listo?
6
Que es la orientación a objetos?
7
La orientación a objetos es un paradigma de programación
8
Típico! Si bien esta definición es correcta, el problema está, en que tanto lo comprendemos…
9
una forma de ver las cosas, o bien …
A título personal… La orientación a objetos es “simplemente” una forma de ver las cosas, o bien …
10
…es una forma de entender un problema identificando las entidades principales que se encuentran en el..
11
La programación orientada a objetos (POO) es por tanto
una forma de desarrollar un sistema, pensando en las entidades principales del problema que dicho sistema pretende resolver…
12
PINCIPIOS EN QUE SE APOYA LA TECNOLOGÍA O.O.
Objeto como instancia de una Clase Métodos Mensajes
13
la herramienta El lenguaje de programación es
para resolver el problema El propósito de la POO no tiene que ver con el lenguaje de programación
14
conceptos relevantes presentes en el problema
El propósito de la programación orientada a objetos consiste en… proporcionar una solución informática identificando los conceptos relevantes presentes en el problema
15
Identificar los conceptos relevantes
o las entidades involucradas en un problema significa… reconocer las características de estos y las acciones que realizan o bien que producen algún efecto sobre ellos
16
Con respecto a los lenguajes de programación
podemos decir que… cada uno usa la herramienta en que más hábil se considere, el problema finalmente no cambia
17
una u otra herramienta de trabajo
De acuerdo a la situación con una u otra herramienta se nos hace más o menos difícil … y de acuerdo al escenario se debe elegir una u otra herramienta de trabajo
18
Veamos algunos conceptos clave… Qué es un Objeto?
19
Un Objeto es… Cualquier Cosa
20
En serio! Cualquier Cosa
21
Cualquier Cosa …de la que puedas emitir un concepto…
22
Es decir… Cualquier Cosa, todo es un objeto
23
…el mundo está lleno de objetos reales, los cuales se pueden representar como tales en una solución computarizada.
24
Veamos… Este es un objeto …es un automóvil de plástico, rojo con 4 llantas y 2 puertas
25
emitimos un concepto preconcebido
Si realizáramos el proceso mental lentamente, nos daríamos cuenta de que al ver el objeto emitimos un concepto preconcebido es decir automóvil
26
En la imagen cada uno de los elementos que vemos es considerado
un objeto Sin embargo de todos ellos podemos emitir un concepto conocido y para ello usamos la palabra globo
27
agrupación de objetos A ese concepto conocido que representa una
…lo llamamos Clase
28
Una clase es como un molde de galletas…
… este determina la forma y características que la galleta (el objeto) va a tener, sin ser el objeto real
29
El molde (la clase) no determina por ejemplo, que sabor tiene cada una de las galletas…
…tampoco por cuanta cantidad de ingredientes estará compuesta.
30
La clase es una… …los objetos son todos los que podamos crear mentalmente a partir de dicha clase o concepto
31
La clase … … Describe un conjunto de objetos del Contexto del Problema, que tienen las mismas características y el mismo comportamiento
32
Hagamos un ejercicio, el típico…
…el concepto que elegiremos es la clase persona
33
Este grupo de personas tiene un conjunto de características y comportamientos en común
Nombre Edad Color de Piel Profesión Estado Civil Comportamientos Hablar Caminar Mirar Nacer Morir
34
Un objeto de la clase persona sería
Características Nombre: Sandra Edad: 22 Color de Piel: Morena Profesión: Deportista Estado Civil: Soltera Comportamientos Hablar Caminar Mirar Nacer Morir
35
Otro objeto de la clase persona sería
Características Nombre: Carlos Edad: 28 Color de Piel: Blanco Profesión: Abogado Estado Civil: Casado Comportamientos Hablar Caminar Mirar Nacer Morir
36
características (atributos o propiedades)
Ya vamos entendiendo… Una clase esta compuesta por características (atributos o propiedades) y por comportamientos (acciones o métodos)
37
Las características y comportamientos de una clase
son determinadas por el contexto del problema o escenario Esto en programación quiere decir, que dentro de un sistema, solo implementamos los atributos y métodos relacionados con el ámbito del problema que estamos solucionando.
38
Veamos algunos conceptos adicionales…
A los valores que tienen los atributos de un objeto se les conoce como el estado del objeto, y a los atributos y métodos que ofrece se les conoce como la interfaz al código usado para construir las clases se le conoce como la implementación de la clase. Interfaz 1. f. Inform. Conexión física y funcional entre dos aparatos o sistemas independientes.
39
Los objetos se comunican con otros a través de mensajes
Un mensaje es una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó. Wikipedia
40
Agregación/Composición
Los objetos tienen diferentes tipos de relaciones Asociación Agregación/Composición
41
Ahora veamos conceptos avanzados
42
… la modularidad y la reusabilidad
Los principios que dirigen la orientación a objetos son… … la modularidad y la reusabilidad Qué son?
43
En términos simples la modularidad significa trabajar por partes…
44
Y la reusabilidad significa No se invente la rueda!
Lo que ya esta hecho es para usarse y algunas de las cosas que no están hechas, deben construirse pensando en que alguien necesitará usarlo alguna vez
45
… que tan claros los tenemos?….
Con respecto a la comunicación tenemos más principios alta cohesión y el bajo acoplamiento … que tan claros los tenemos?….
46
… el criterio de relación debe ser de negocio o técnico y no subjetivo
Cuando decimos que un componente tiene una alta cohesión hablamos de que todos los elementos dentro de el están estrechamente relacionados … el criterio de relación debe ser de negocio o técnico y no subjetivo
47
Cuando decimos que un componente tiene una bajo acoplamiento hablamos del nivel de independencia que tiene un componente con respecto a otros
48
Características de la Orientación a Objetos
49
Abstracción Quitar propiedades y acciones de un objeto para dejar solo las necesarias Proceso mental que tiene dos aspectos complementarios El aspecto de destacar los detalles relevantes del objeto de estudio El aspecto de ignorar los detalles irrelevantes del objeto.
50
Encapsulamiento no puede ser manipulado directamente desde el exterior y su representación concreta es invisible.
51
Poseer todas las características de la clase de la que proviene
Herencia Poseer todas las características de la clase de la que proviene La herencia permite modelar relaciones del tipo ...es es un… y clasificaciones
52
Polimorfismo Es la posibilidad de definir de forma distinta un método, dependiendo del objeto
cada clase sabe como realizar tal operación
53
Beneficios de la tecnología de objetos
1. Permite desarrollar software en mucho menos tiempo y con menos coste. 2. Se consigue aumentar la calidad de los sistemas. 3. El software orientado a objetos es más fácil de modificar y mantener. 4. La tecnología de objetos facilita la adaptación al entorno y el cambio. 5. Fomenta una metodología basada en componentes 6. Utiliza en el análisis y diseño
54
Recomendaciones finales
La POO representa un gran avance en la programación, tal como lo fue la programación estructurada en la década de los ‘70. Entre sus ventajas más importante se encuentran un notable aumento de la productividad del programador y de la robustez de los programas
55
La Programación orientación a objetos es…
… una serie de normas, de realizar las cosas de manera que otras personas puedan utilizarlas y adelantar su trabajo, de manera que consigamos que el código se pueda reutilizar
56
AJUSTANDO NUESTRO VOCABULARIO
A lo que antes llamábamos tipo, refiriéndonos a estructuras de datos, ahora lo llamamos clase, entendiendo como tal no sólo las estructuras, sino también el comportamiento asociado (las acciones y funciones asociadas directamente con la estructura de datos). A lo que antes llamábamos variable ahora lo llamamos objeto. Así como las variables son de determinado tipo, los objetos son de determinada clase.
57
Los procedimientos y funciones definidos dentro de una clase se llaman métodos, en tanto que los campos se denominan atributos. En nuestro ejemplo, podríamos decir que la clase persona tiene los atributos nombre, apellido y edad, y los métodos inicializar, nombre_completo y es_mayor.
58
Un concepto importante: la herencia
En la POO existe la posibilidad de extender el comportamiento de una clase, añadiendo atributos y métodos. El mecanismo utilizado para tal fin se denomina herencia. Siguiendo con nuestro ejemplo, podríamos querer definir una clase empleado. Básicamente un empleado posee todas las características de una persona (tiene nombre y apellido, tiene sentido preguntarse si es mayor de edad, etc.). Sin embargo, un empleado tendrá otros atributos (por ejemplo, un salario, un cargo) y también otros métodos (liquidar_salario, etc.). Es por esto que bastará con definir a la clase empleado heredando de la clase persona (en POO se usa la expresión “un empleado es una persona“), y añadiendo el nuevo comportamiento (métodos y atributos).
59
ANEXO: Un ejemplo en PHP es un lenguaje con un sistema de tipos dinámico (una característica que lo hace muy simple y rápido para pequeños desarrollos, pero que se vuelve un arma de doble filo en programas complejos). <? function inicializar($nombre, $apellido, $edad) { $persona['nombre'] = $nombre; $persona['apellido'] = $apellido; $persona['edad'] = $edad; return $persona; } function nombre_completo($persona) { return $persona['nombre'] . ' ' .$persona['apellido']; } function es_mayor($persona) { return $persona['edad'] >= 18; } $p = inicializar('Juan', 'Perez', 25); echo nombre_completo($p); if (es_mayor($p)) { echo " es mayor de edad.\n"; } else { echo " es menor de edad.\n"; } ?>
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.