01 Introduccion Programación Orientaeda a Objetos

40
Programación Programación Orientada a Objetos Orientada a Objetos Introducción Introducción

description

Clase de Introducción al Curso de Programación Orientada a Objetos de la carrera de Ciencias Computacionales de la ESPOL

Transcript of 01 Introduccion Programación Orientaeda a Objetos

Page 1: 01 Introduccion Programación Orientaeda a Objetos

Programación Programación Orientada a ObjetosOrientada a Objetos

IntroducciónIntroducción

Page 2: 01 Introduccion Programación Orientaeda a Objetos

2

InstructorInstructor

• XavierXavier Ochoa Chehab Ochoa ChehabEstudiosEstudios

Ingeniero en Computación (ESPOL, 2000)Ingeniero en Computación (ESPOL, 2000)

M.Sc. Computación Aplicada (VUB, 2002)M.Sc. Computación Aplicada (VUB, 2002)

Ph.D. en Ingeniería (KULeuven, 2008)Ph.D. en Ingeniería (KULeuven, 2008)

TrabajoTrabajo

Profesor Principal de la FIEC (7 años)Profesor Principal de la FIEC (7 años)

Investigador en el CTI (11 años)Investigador en el CTI (11 años)

Page 3: 01 Introduccion Programación Orientaeda a Objetos

3

InstructorInstructor

Areas de Interes ProfesionalAreas de Interes Profesional

E-Learning 2.0E-Learning 2.0

MultimediaMultimedia

MétricasMétricas

Areas de Interes PersonalAreas de Interes Personal

Ciencia Ficción (Libros, Peliculas)Ciencia Ficción (Libros, Peliculas)

AstronomíaAstronomía

ViajarViajar

Page 4: 01 Introduccion Programación Orientaeda a Objetos

4

InstructorInstructor

Presencia Digital:Presencia Digital:

http://ariadne.cti.espol.edu.ec/xavierhttp://ariadne.cti.espol.edu.ec/xavier

Bookmarks: Bookmarks: http://delicious.com/xaochhttp://delicious.com/xaoch

Twitter: Twitter: http://www.twitter.com/xaochhttp://www.twitter.com/xaoch

Web log: Web log: http://xaoch.tumblr.comhttp://xaoch.tumblr.com

Pres.: Pres.: http://www.slideshare.com/xaochhttp://www.slideshare.com/xaoch

Page 5: 01 Introduccion Programación Orientaeda a Objetos

EstudiantesEstudiantes

Page 6: 01 Introduccion Programación Orientaeda a Objetos

6

EstudiantesEstudiantes

Entrevista CruzadaEntrevista Cruzada

¿Quién es?¿Quién es?

¿Porque estudia CC?¿Porque estudia CC?

Origen de su NombreOrigen de su Nombre

Page 7: 01 Introduccion Programación Orientaeda a Objetos

7

Las ReglasLas Reglas

Asistencia:Asistencia:

La asistencia es obligatoriaLa asistencia es obligatoria

Se toma lista a los 15 minutos de empezada Se toma lista a los 15 minutos de empezada la clase. Se puede ingresar a la clase más la clase. Se puede ingresar a la clase más tarde, pero no se marca la asistenciatarde, pero no se marca la asistencia

Si el instructor no llegase dentro de los 15 Si el instructor no llegase dentro de los 15 primeros minutos no habrá clase ese día.primeros minutos no habrá clase ese día.

Page 8: 01 Introduccion Programación Orientaeda a Objetos

8

Las ReglasLas Reglas

Evaluación:Evaluación:

Primera EvaluaciónPrimera Evaluación

Examen escrito: 50 puntosExamen escrito: 50 puntos

Investigación: 10 puntosInvestigación: 10 puntos

Deberes: 10 puntosDeberes: 10 puntos

Proyecto: 25 puntosProyecto: 25 puntos

Page 9: 01 Introduccion Programación Orientaeda a Objetos

9

Las ReglasLas Reglas

Evaluación:Evaluación:

Segunda EvaluaciónSegunda Evaluación

Examen escrito: 50 puntosExamen escrito: 50 puntos

Investigación: 10 puntosInvestigación: 10 puntos

Deberes: 10 puntosDeberes: 10 puntos

Proyecto: 30 puntosProyecto: 30 puntos

Page 10: 01 Introduccion Programación Orientaeda a Objetos

10

Las ReglasLas Reglas

Evaluación:Evaluación:

MejoramientoMejoramiento

Examen escrito: 50 puntosExamen escrito: 50 puntos

Proyecto: 50 puntosProyecto: 50 puntos

Page 11: 01 Introduccion Programación Orientaeda a Objetos

11

Las ReglasLas Reglas

InvestigaciónInvestigación

Cada semana deberán inlcuir un contenido Cada semana deberán inlcuir un contenido nuevo para la materia encontrado en Internetnuevo para la materia encontrado en Internet

No se contará contenido repetidoNo se contará contenido repetido

Se utilizará el sistema Se utilizará el sistema Delicious.comDelicious.com

Se utilizará el tagSe utilizará el tag pooespolpooespol

Se contará hasta las 23:59 del DomingoSe contará hasta las 23:59 del Domingo

Page 12: 01 Introduccion Programación Orientaeda a Objetos

12

Las ReglasLas Reglas

ProyectosProyectos

Los proyectos se realizarán en grupos de 2Los proyectos se realizarán en grupos de 2

Los proyectos deberán ser sustentadosLos proyectos deberán ser sustentados

Se calificará:Se calificará:

funcionalidad, diseño, estilo y robustésfuncionalidad, diseño, estilo y robustés

Page 13: 01 Introduccion Programación Orientaeda a Objetos

Introducción a Introducción a Orientación a ObjetosOrientación a Objetos

Page 14: 01 Introduccion Programación Orientaeda a Objetos

14

Paradigma Paradigma ProcedimentalProcedimental

El paradigma procedimental ve a El paradigma procedimental ve a un sistema de computo como un un sistema de computo como un “procesador de datos”“procesador de datos”

Los datos ingresan al programa y Los datos ingresan al programa y se van transformando al pasar por se van transformando al pasar por una serie de funcionesuna serie de funciones

Page 15: 01 Introduccion Programación Orientaeda a Objetos

15

Paradigma Paradigma ProcedimentalProcedimental

Sistema de Rol de PagosSistema de Rol de Pagos::

Obtener la lista de empleadosObtener la lista de empleados

Obtener el registro de horas de trabajoObtener el registro de horas de trabajo

Obtener las tablas de remuneración y descuentosObtener las tablas de remuneración y descuentos

Para cada empleado:Para cada empleado:

Calcular la cantidad a pagarCalcular la cantidad a pagar

Calcular las retenciones e impuestosCalcular las retenciones e impuestos

Calcular la paga netaCalcular la paga neta

Preparar el chequePreparar el cheque

Anotar el cheque en el sistema de contabilidadAnotar el cheque en el sistema de contabilidad

Enviar el cheque al empleadoEnviar el cheque al empleado

Devolver todos los documentos a su respectivo lugarDevolver todos los documentos a su respectivo lugar

Page 16: 01 Introduccion Programación Orientaeda a Objetos

16

Paradigma Paradigma ProcedimentalProcedimental

Esas operaciones pueden llevarse a cabo con Esas operaciones pueden llevarse a cabo con un computadorun computador

Los pasos necesarios para llegar a cabo una Los pasos necesarios para llegar a cabo una tarea se conocen como “proceso”tarea se conocen como “proceso”

Cada uno de los pasos se conoce como Cada uno de los pasos se conoce como “procedimiento”“procedimiento”

Page 17: 01 Introduccion Programación Orientaeda a Objetos

17

Paradigma Paradigma ProcedimentalProcedimental

Cada procedimiento recibe datos de Cada procedimiento recibe datos de entrada, los procesa y luego los transmite a entrada, los procesa y luego los transmite a otro procedimiento y finalmente a un otro procedimiento y finalmente a un humano.humano.

Los datos son dados a los procedimientos Los datos son dados a los procedimientos de una manera similar a la que la materia de una manera similar a la que la materia prima es alimentada una línea de prima es alimentada una línea de ensamblaje.ensamblaje.

Page 18: 01 Introduccion Programación Orientaeda a Objetos

18

Paradigma Paradigma ProcedimentalProcedimentalEl diseñador trata de descomponer los El diseñador trata de descomponer los problemas en pequeños procedimientos que problemas en pequeños procedimientos que siendo ejecutados en el orden correcto siendo ejecutados en el orden correcto hacen que el sistema llegue a una hacen que el sistema llegue a una respuesta.respuesta.

Esto funciona muy bien para problemas Esto funciona muy bien para problemas pequeños. ¿Pero que pasa con sistemas pequeños. ¿Pero que pasa con sistemas grandes y donde lo que gobierna al sistema grandes y donde lo que gobierna al sistema no son los datos sino los eventos?no son los datos sino los eventos?

Page 19: 01 Introduccion Programación Orientaeda a Objetos

19

Paradigma Paradigma ProcedimentalProcedimental

Ejemplos de este tipo de problema son los Ejemplos de este tipo de problema son los sistemas interactivossistemas interactivos

En ellos el flujo del programa ya no es En ellos el flujo del programa ya no es lineal, sino que dependerá de la respuesta lineal, sino que dependerá de la respuesta del usuariodel usuario

El orden en que los procedimientos son El orden en que los procedimientos son llamados no se conoce de antemanollamados no se conoce de antemano

Page 20: 01 Introduccion Programación Orientaeda a Objetos

20

Construcción de una casa para “fido” Construcción de una casa para “fido”

Puede hacerlo una sola personaPuede hacerlo una sola personaRequiere:Requiere:

Modelado mínimoModelado mínimoProceso simpleProceso simple

Herramientas simplesHerramientas simples

Page 21: 01 Introduccion Programación Orientaeda a Objetos

21

Construcción de una casaConstrucción de una casa

Construida eficientemente y en un tiempo Construida eficientemente y en un tiempo razonable por un equiporazonable por un equipo

Requiere:Requiere:ModeladoModelado

Proceso bien definidoProceso bien definidoHerramientas más sofisticadasHerramientas más sofisticadas

Page 22: 01 Introduccion Programación Orientaeda a Objetos

22

Construcción de un rascacielosConstrucción de un rascacielos

Page 23: 01 Introduccion Programación Orientaeda a Objetos

23

¿Un nuevo paradigma?¿Un nuevo paradigma?

Paradigma = conjunto de teorías, estándares y Paradigma = conjunto de teorías, estándares y métodos que juntos representan maneras de métodos que juntos representan maneras de organizar el conocimiento y ver el mundo. organizar el conocimiento y ver el mundo.

En la ciencia una revolución ocurre cuando un En la ciencia una revolución ocurre cuando un paradigma viejo es reexaminado, rechazado y paradigma viejo es reexaminado, rechazado y remplazado por uno nuevoremplazado por uno nuevo

Paradigma de Programación = una manera de Paradigma de Programación = una manera de conceptuar que significa computar y como conceptuar que significa computar y como estructurar y organizar las tareas que deben ser estructurar y organizar las tareas que deben ser llevadas a cabo por una computadorallevadas a cabo por una computadora

Page 24: 01 Introduccion Programación Orientaeda a Objetos

24

Paradigma Paradigma Orientado a ObjetosOrientado a Objetos

En el paradigma orientado a objetos, el En el paradigma orientado a objetos, el diseñador trata de resolver un problema diseñador trata de resolver un problema modelando los diferentes objetos presentes y modelando los diferentes objetos presentes y sus diferentes interaccionessus diferentes interacciones

En este paradigma los datos no son algo En este paradigma los datos no son algo externo al programa, sino que está embebido externo al programa, sino que está embebido dentro de los “objetos”dentro de los “objetos”

Page 25: 01 Introduccion Programación Orientaeda a Objetos

25

Paradigma Paradigma Orientado a ObjetosOrientado a Objetos

El paradigma orientado a objetos permite al El paradigma orientado a objetos permite al programador concentrarse en el la solución al programador concentrarse en el la solución al problema y no en cómo implementarla en un problema y no en cómo implementarla en un computadorcomputador

Brinda tres claras ventajas sobre el paradigma Brinda tres claras ventajas sobre el paradigma procedimental:procedimental:

Fácil MantenimientoFácil Mantenimiento

ReusableReusable

EscalableEscalable

Page 26: 01 Introduccion Programación Orientaeda a Objetos

26

¿Por qué la POO es ¿Por qué la POO es Popular?Popular?

Similaridad con la forma de pensar acerca de Similaridad con la forma de pensar acerca de los problemas en la vida reallos problemas en la vida real

Es muy escalable, desde problemas triviales Es muy escalable, desde problemas triviales hasta sistemas muy complejoshasta sistemas muy complejos

Page 27: 01 Introduccion Programación Orientaeda a Objetos

27

POO: Una nueva manera POO: Una nueva manera de ver el mundode ver el mundo

““ Juan quiere mandar flores a su amiga Ana que Juan quiere mandar flores a su amiga Ana que vive en otra ciudad. Debido a la distancia Juan vive en otra ciudad. Debido a la distancia Juan no puede llevar las flores directamente a Ana. no puede llevar las flores directamente a Ana. Juan acude a Pedro, un florista local, y le da el Juan acude a Pedro, un florista local, y le da el número y tipo de flores que quiere enviarle a número y tipo de flores que quiere enviarle a Ana y su dirección. Juan puede estar seguro Ana y su dirección. Juan puede estar seguro que las flores serán entregadas a Ana.que las flores serán entregadas a Ana. ” ”

Page 28: 01 Introduccion Programación Orientaeda a Objetos

28

Agentes, Agentes, Responsabilidad, Responsabilidad, Mensajes y MétodosMensajes y Métodos

Juan encuentra un Juan encuentra un agenteagente apropiado (Pedro) apropiado (Pedro)

Y le envía un Y le envía un mensajemensaje que contiene una petición. que contiene una petición.

Es la Es la responsabilidadresponsabilidad de Pedro el satisfacer esa de Pedro el satisfacer esa petición.petición.

• Existe algún Existe algún métodométodo (conjunto de operaciones) (conjunto de operaciones) usadas por Pedro para entregar las flores. usadas por Pedro para entregar las flores.

Juan no necesita conocer el método particular Juan no necesita conocer el método particular que Pedro utilizará, esa información esta que Pedro utilizará, esa información esta ocultaoculta..

Page 29: 01 Introduccion Programación Orientaeda a Objetos

29

POO: el Principio POO: el Principio GeneralGeneral

Un programa orientado a objetos esta estructurado como Un programa orientado a objetos esta estructurado como una comunidad de agentes que interactúan entre si una comunidad de agentes que interactúan entre si llamados objetos.llamados objetos.

Las acciones son iniciadas por la transmisión de mensajes a Las acciones son iniciadas por la transmisión de mensajes a un agente (un objeto). un agente (un objeto).

El mensaje codifica un requerimiento de acción y es El mensaje codifica un requerimiento de acción y es acompañado por información adicional (argumentos) acompañado por información adicional (argumentos) necesaria para llevar a cabo el requerimiento.necesaria para llevar a cabo el requerimiento.

El receptor es el agente al cual el mensajes es enviado. Si El receptor es el agente al cual el mensajes es enviado. Si el receptor acepta el mensaje, acepta la responsabilidad de el receptor acepta el mensaje, acepta la responsabilidad de llevar a cabo la acción solicitada.llevar a cabo la acción solicitada.

En respuesta a un mensajes el receptor ejecutará algún En respuesta a un mensajes el receptor ejecutará algún método para satisfacer el requerimiento.método para satisfacer el requerimiento.

Page 30: 01 Introduccion Programación Orientaeda a Objetos

30

¿Qué es un objeto?¿Qué es un objeto?

Así como los procedimientos son la base para Así como los procedimientos son la base para construir programas estructurados, los construir programas estructurados, los objetos son usados para construir programas objetos son usados para construir programas orientados a objetosorientados a objetos

Un programa orientado a objetos es una Un programa orientado a objetos es una colección de objetos que están organizados colección de objetos que están organizados para, y cooperan para, lograr un objetivo.para, y cooperan para, lograr un objetivo.

Page 31: 01 Introduccion Programación Orientaeda a Objetos

31

ObjetoObjeto

Cada objeto:Cada objeto:

– Contiene datos: Contiene datos: Los datos guardan información Los datos guardan información que describe el estado del objeto.que describe el estado del objeto.

– Tiene un conjunto de comportamientos: Tiene un conjunto de comportamientos: Estos Estos comportamientos son cosas que el objeto sabe comportamientos son cosas que el objeto sabe como hacer y que son disparadas por mensajes como hacer y que son disparadas por mensajes enviados al objeto. enviados al objeto.

– Tiene identidad individual: Tiene identidad individual: Esto hace posible Esto hace posible distinguir un objeto de otro así como es posible distinguir un objeto de otro así como es posible distinguir una variable de otradistinguir una variable de otra

Page 32: 01 Introduccion Programación Orientaeda a Objetos

32

ObjetoObjeto

Objeto empleado:Objeto empleado:

Datos:Datos:Nombre: Juan PerezNombre: Juan Perez

Horas que trabaja a la semana: 40Horas que trabaja a la semana: 40Afiliado al seguro: siAfiliado al seguro: si

Comportamiento:Comportamiento:Calcular SueldoCalcular Sueldo

Calcular RetencionesCalcular RetencionesCambiar horario de trabajoCambiar horario de trabajo

Empleado # Empleado # 0312303123

Page 33: 01 Introduccion Programación Orientaeda a Objetos

ObjetoObjeto

Page 34: 01 Introduccion Programación Orientaeda a Objetos

Objeto BicicletaObjeto Bicicleta

Page 35: 01 Introduccion Programación Orientaeda a Objetos

35

ObjetoObjeto

Un objeto es una abstracción de Un objeto es una abstracción de una entidad del mundo real.una entidad del mundo real.

Los datos de un objeto son Los datos de un objeto son conocidos como los atributosconocidos como los atributos

Los comportamientos de un objeto Los comportamientos de un objeto son conocidos como métodos. son conocidos como métodos.

Page 36: 01 Introduccion Programación Orientaeda a Objetos

Ejemplos de ObjetosEjemplos de ObjetosCuenta BancariaCuenta Bancaria

Estado: número de cuenta, dueño, balance, tasa interés, etcEstado: número de cuenta, dueño, balance, tasa interés, etc

Operaciones: depositar, retirar, transferir, etcOperaciones: depositar, retirar, transferir, etc

EstudianteEstudiante

Estado: nombre, matrícula, fecha de nacimiento, carreraEstado: nombre, matrícula, fecha de nacimiento, carrera

Operaciones: calcular edad, calcular pago, buscar notasOperaciones: calcular edad, calcular pago, buscar notas

StringString

Estado: secuencia de caracteresEstado: secuencia de caracteres

Operaciones: calcular largo, probar si es igual, concatenar, Operaciones: calcular largo, probar si es igual, concatenar, etc.etc.

Page 37: 01 Introduccion Programación Orientaeda a Objetos

Lenguajes OOLenguajes OO

Smalltalk (Squeak)Smalltalk (Squeak)

C++C++

JavaJava

C#C#

PythonPython

RubyRuby

Page 38: 01 Introduccion Programación Orientaeda a Objetos

Terminología Terminología

JRE – Java Runtime EnvironmentJRE – Java Runtime Environment

JVM que ejecuta el códigoJVM que ejecuta el código

JDK – Java Development KitJDK – Java Development Kit

JRE + tools (compiler, debugger) para desarrollo de applets JRE + tools (compiler, debugger) para desarrollo de applets y de aplicacionesy de aplicaciones

J2SE – Java 2 Platform, Standard EditionJ2SE – Java 2 Platform, Standard Edition

JRE y JDK “family”JRE y JDK “family”

J2EE - Java 2 Platform, Enterprise EditionJ2EE - Java 2 Platform, Enterprise Edition

Incluye frameworks para trabajo WebIncluye frameworks para trabajo Web

http://java.sun.com/javase/technologies/index.jsphttp://java.sun.com/javase/technologies/index.jsp

Page 39: 01 Introduccion Programación Orientaeda a Objetos

Entorno de DesarrolloEntorno de Desarrollo

Page 40: 01 Introduccion Programación Orientaeda a Objetos

TareaTarea

Instalar JDK 6Instalar JDK 6

Instalar Eclipse (JEE-Instalar Eclipse (JEE-Galileo)Galileo)

Enviar captura de pantalla Enviar captura de pantalla en SIDWeben SIDWeb