programación orientada a objetos
description
Transcript of programación orientada a objetos
-
Programacion Orientada a Objetos
Informacion generalTema 1: Introduccion - el concepto de objeto
Anders Jonsson & Mart Sa`nchezCurso 2015-16
-
Sesion 1 de Teora
Informacion general
Tema 1: Introduccion - el concepto de objeto
Programacion orientada a objetos
-
Datos generales
Profesores de teora (coordenadores)
Anders Jonsson (grupo 1) Email: [email protected] Despacho: 55.219 Tutora: por cita
Mart Sa`nchez (grupo 2) Email: [email protected] Despacho: 51.100 Tutora: por cita
-
Datos generales
Organizacion:
9 sesiones de teora
5 sesiones de practicas
4 sesiones de seminarios
Ejercicios individuales de programacion
Comunicacion:
A traves del Aula Global Apuntes de las sesiones de teora Enunciados de seminarios y practicas Avisos en el foro de noticias etc.
-
Evaluacion
Teora:
Un examen al final del trimestre
Un examen de recuperacion en julio (solo para suspendidos)
Practicas:
Cuatro entregas (con fecha posterior a cada sesion)
Seminarios:
Cuatro entregas (al final de cada sesion)
-
Evaluacion
La nota final se calcula de la siguiente manera:
Examen final: 40%
Cuatro practicas: 4 10% = 40%
Cuatro seminarios: 4 5% = 20%
Para aprobar la asignatura se tiene que
conseguir una nota final 5
aprobar el examen con una nota 5
aprobar las practicas con una nota promedia 5
aprobar los seminarios con una nota promedia 5
-
Seminarios
Objetivo: resolver ejercicios de diseno y modelado
Preparacion previa (revisar conceptos, leer enunciado)
Se presenta un problema concreto a resolver
Trabajo conceptual sin ordenadores
La solucion se elabora en la misma sesion
Entrega al final de cada sesion
Trabajo en pareja o individual
-
Practicas
Objetivo: implementar (en Java) las soluciones de losseminarios
Se entrega la solucion corregida del seminario anterior
Se explican las tecnicas necesarias
La solucion se implementa dentro y fuera de clase
Entrega con fecha posterior a cada sesion
Entrega: codigo + memoria
Trabajo en pareja o individual
-
Ejercicios de programacion
Objetivo: reforzar la habilidad de programar
Se presenta una serie de ejercicios de programacion
La solucion se implementa fuera de clase
Trabajo individual
-
Profesorado
Grupo X=1 X=2
TX Anders Jonsson Mart Sa`nchezPX01 Filippos Kominis Damir LotinacPX02 Damir Lotinac Filippos KominisSX01 Anders Jonsson Mart Sa`nchezSX02 Damir Lotinac Damir LotinacSX03 Damir Lotinac Mart Sa`nchezSX04 Filippos Kominis Filippos Kominis
-
Temario de la asignatura
Tema 1 Introduccion - el concepto de objeto
Tema 2 El paradigma de la programacion orientada a objetos
Tema 3 Modelado de objetos y relaciones entre objetos
Tema 4 Tecnicas fundamentales - herencia y polimorfismo
Tema 5 Conceptos avanzados - interfaces y clases abstractas
Tema 6 Reutilizacion y estudio de problemas resueltos con objetos
-
Bibliografa
Bertrand Meyer: Object Oriented Software Construction(disponible en castellano)
Cay Horstmann: Object Oriented Design and Patterns
Bruce Eckel: Thinking in Java (disponible en castellano yonline)
Ken Arnold, James Gosling, David Holmes: JavaProgramming Language (disponible en castellano)
Apuntes de las sesiones de teora
-
Sesion 1 de Teora
Informacion general
Tema 1: Introduccion - el concepto de objeto
Programacion orientada a objetos
-
Que significa programacion?
-
Que significa programacion?
De Wikipedia:
La programacion es el proceso de disenar, codificar, depurary mantener el codigo fuente de programas computacionales
El proposito de la programacion es crear programas queexhiban un comportamiento deseado
-
Incompatibilidad del lenguaje
-
Evolucion de la programacion
1940 Programa: secuencia de 0s y 1s
1951 Lenguaje asamblador: palabras cortas
1955 FORTRAN: primer lenguaje imperativo
1958 LISP: primer lenguaje funcional
1967 Simula: primer lenguaje orientado a objetos
1972 Prolog: primer lenguaje logico
1973 C: traduccion eficiente a codigo maquina
1980 C++: lenguaje imperativo y orientado a objetos
1995 Java: lenguaje multiplataforma
-
Ejemplos de codigo
C:
x = 23 + 42;
Asamblador:
LDA #23
ADD #42
STO 34
Codigo maquina:
0001 00010111
0100 00101010
0000 00100010
-
Motivacion del progreso
Fundamentalmente, facilitar la tarea de escribir programas
Acercar el lenguaje de programacion al lenguaje natural
Fomentar la abstraccion
Fomentar la reutilizacion
-
Abstraccion
Aislar un elemento de su contexto o del resto de loselementos que lo acompanan
Enfocar en lo esencial
Ignorar lo irrelevante
Herramienta importante para reducir la complejidad
-
Reutilizacion
La accion de volver a utilizar los bienes o productos
Aprovechar elementos existentes
No duplicar el trabajo necesario para crear un elemento nuevo
Herramienta importante para reducir el esfuerzo
-
Evolucion hacia objetos
1. Procedimientos y funciones
2. Modulos (libreras, paquetes)
3. Tipos de datos abstractos
4. Objetos
-
Procedimientos y funciones
Agrupan secuencias de instrucciones en acciones individuales
Implementan tareas concretas
Ejemplo:
int sum( int a, int b ) {
int s;
s = a + b;
return s;
}
-
Modulos
Agrupan procedimientos y funciones
Implementan conjuntos de tareas relacionadas
Se publica la definicion de los procedimientos y funciones,pero la implementacion queda oculta
Ejemplo:
stdio.h:
int printf( const char * format, ... );
// Print formatted data to stdout
int scanf ( const char * format, ... );
// Read formatted data from stdin
-
Tipos de datos abstractos
Asocian estructuras de datos con operaciones sobre estasestructuras
Abstractos: descripcion conceptual en vez de implementacionconcreta
Ejemplo: Stack (pila) push(S,e): anadir el elemento e a la pila S pop(S): sacar el elemento superior de la pila S peek(S): acceder al elemento superior de la pila S
-
Objetos
Tambien asocian entidades con caractersticas ycomportamientos
Sin embargo, incorporan conceptos nuevos
Objetivo: aumentar el nivel de abstraccion y reutilizacion
-
Aplicaciones de POO
-
Porque trabajar con objetos?
-
Porque trabajar con objetos?
-
Que entendemos por objeto?
-
Uso de objetos
Los objetos nos ayudan a actuar en el mundo
Herramienta importante de abstraccion
Agrupamos los objetos por tipo
-
Que informacion proporcionan los objetos?
-
Que informacion proporcionan los objetos?
Dos categoras fundamentales de informacion: Descriptiva: p.ej. rectangular, ligero, negro, etc. Funcional: p.ej. llamar, escuchar, jugar, ver, etc.
-
Como representar un objeto en el ordenador?
El ordenador limita nuestra capacidad de representar objetosfsicos
Idea: representar la esencia de un objeto (la informacion queproporciona)
Objeto representado por las dos categoras fundamentales deinformacion:
Atributos (o variables) para describir las caractersticas Metodos (o funciones) para implementar los comportamientos
-
Ejemplo
-
Atributos
Atributos: variables que describen las caractersticas del objeto
-
Metodos
Metodos: funciones que implementan el comportamiento del objeto
-
Sesion 1 de Teora
Informacion general
Tema 1: Introduccion - el concepto de objeto
Programacion orientada a objetos
-
Programacion orientada a objetos
Programacion:
La programacion es el proceso de disenar, codificar, depurary mantener el codigo fuente de programas computacionales
El proposito de la programacion es crear programas queexhiban un comportamiento deseado
Programacion orientada a objetos:
Un paradigma de programacion que usa los objetos en susinteracciones, para disenar aplicaciones y programasinformaticos
-
Delegacion de tareas
Un mecanismo por medio de la cual un objeto delega en otrouna determinada funcionalidad
Principio fundamental en la programacion orientada a objetos
Fomenta la abstraccion y la reutilizacion
-
Ejemplo
Juan Perez quiere viajar de Barcelona a Pars
Cuales son las posibles soluciones a este problema?
-
Posibles soluciones
1. Juan Perez va a pie (unica solucion que no delega tareas)
2. Juan Perez va en coche (delega la tarea de transportarse alobjeto coche)
3. Juan Perez va en avion Delega la tarea de buscar vuelos a un buscador en Internet Delega la tarea de transportarse a una aerolnea etc.
-
Discusion
Diferentes objetos interactuan para llegar a una solucion
Abstraccion: un objeto no necesita saber como otro objetolleva a cabo una tarea, solo que es capaz de hacerlo
Reutilizacion: los objetos se pueden volver a usar
Una vez delegada, otro objeto es responsable de la tarea
-
Diseno orientado a objetos
1. Identificar los objetos que participaran en la solucion
2. Si un objeto ya esta definido, reutilizar y/o modificar
3. Si un objeto no esta definido, crear una definicion nueva
4. Determinar como interactuaran los objetos en la solucion
-
Implementacion
Traducir el diseno a codigo
Existe una variedad de lenguajes orientados a objetos
La mayora basada en texto, e.g. C++ y Java
Encapsulamiento: el codigo del objeto inaccesible desde fuera
-
Ejemplo: Hello World
C program:
#include
int main() {
printf( "Hello World!\n" );
}
Java program:
class HelloWorldApp {
public static void main( String[] args ) {
System.out.println( "Hello World!" );
}
}
-
Diferencias
Programas no orientados a objetos:
Programa: secuencia de instrucciones
Se puede agrupar codigo por procedimientos o funciones
Comunicacion: llamadas a procedimientos o funciones
Programas orientados a objetos:
Programa: conjunto de definiciones de objetos
Variables y funciones agrupadas por tipo de objeto
Comunicacion: mensajes entre objetos
-
Resumen
Facilitar la programacion implica acercar el lenguaje a nuestromodo de pensar
Estamos programados de pensar en terminos de objetos
La programacion orientada a objetos fomenta la abstraccion yla reutilizacion
Programar: definir objetos y especificar su interaccion
Informacin generalTema 1: Introduccin - el concepto de objetoProgramacin orientada a objetos