Professional Documents
Culture Documents
17 de Octubre de 2013
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Outline
1
Tipos de Datos abstractos Denicin Ejemplos El modelo de objetos Caractersticas Lenguajes Orientados a Objetos SmallTalk RUBY Ejercicios Quaterniones Java Ejemplo SmallTalk
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Denicin Ejemplos
Content
1
Tipos de Datos abstractos Denicin Ejemplos El modelo de objetos Caractersticas Lenguajes Orientados a Objetos SmallTalk RUBY Ejercicios Quaterniones Java Ejemplo SmallTalk
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Denicin Ejemplos
Los tipos de dato Abstracto fue una idea que precedio e inuyo en la programacion orientada a objetos. Abstraccion de datos extiende la nocion de tipo, que proporciona el programador con un mecanismo de encapsulacion para denir nuevos tipos de datos. Un tipo de dato abstracto (TDA) o Tipo abstracto de datos (TAD) es un modelo matemtico compuesto por una coleccin de operaciones denidas sobre un conjunto de datos para el modelo.
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Denicin Ejemplos
TDA: Encapsulacin
Un concepto clave en los TDA es el de encapsulacion: Denicion: La encapsulacion es un mecanismo que permite a las constantes relacionadas logicamente, tipos, variables, metodos, y asi sucesivamente ser agrupadas en una nueva entidad. Los ejemplos incluyen los procedimientos, paquetes y clases.Utilizando los mecanismos de encapsulamiento el programa puede limitar tanto el alcance como la visibilidad de los valores y funciones para este nuevo tipo de dato. Es frecuente que el Encapsulamiento sea usado como un sinnimo del Ocultacin de informacin.
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Denicin Ejemplos
Un TDA es representado por su interfaz, la cual hace de cubierta de la implementacion y que los usuarios de TDA solo se preocupen de la interfaz. En la terminologa de Lenguaje Orientado a Objetos, en general un TDA es una clase; una instancia de un TDA o clase, es un objeto.
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Denicin Ejemplos
Content
1
Tipos de Datos abstractos Denicin Ejemplos El modelo de objetos Caractersticas Lenguajes Orientados a Objetos SmallTalk RUBY Ejercicios Quaterniones Java Ejemplo SmallTalk
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Denicin Ejemplos
TDA Pila
Push(x): Inserta el elemento x en el tope de la pila.
isEmpty(): Devuelve True en caso de que la pila este vacia en caso contrario False
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Denicin Ejemplos
TDA Arbol
Enumerar todos los elementos.
Buscar un elemento.
Borrar un elemento.
Caractersticas
Content
1
Tipos de Datos abstractos Denicin Ejemplos El modelo de objetos Caractersticas Lenguajes Orientados a Objetos SmallTalk RUBY Ejercicios Quaterniones Java Ejemplo SmallTalk
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Caractersticas
Descripcin
An con la evolucin de mdulos y paquetes en la dcada de los 80s permanecan algunos problemas con los tipos de dato abstracto: NO haban mecanismos de inicializacin, ni de nalizacin. NO haba forma de extender un TDA. Se soluciona con la idea de clase. Se modelan GUI como coleccion de objetos.
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Caractersticas
Clases
Es un tipo de declaracin que encapsula constantes, variables y funciones para manipular las variables. Mecanismo para denir TDA en un programa. Constructores y destructores. Java permite usar clases internas.( Visual Basic, .NET, Ruby, C++)
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Caractersticas
Clases
Ejemplo implementacin inner class Java:
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Caractersticas
Visibilidad
La ocultacin de informacin es hecha explcita al requerir que todo mtodo y varible instanciados en una clase tengan un nivel particular de visibilitad, esta puede ser pblica, protegida o privada, con respecto a sus clases clientes y subclases.
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Caractersticas
Visibilidad
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Caractersticas
Herencia
Reutilizacin de cdigo (variables y mtodos) Jerarqua de Clases Relacin es un" vs tiene un"(agregacin).
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Caractersticas
Herencia Mltiple
Una clase hereda de varias superclases ( C++, Lisp, Curl, Dylan, Eiffel, Logtalk, Perl, Python)
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Caractersticas
Polimorsmo
La capacidad de un objeto para cambiar. Diferentes implementaciones de mtodos.
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Caractersticas
Templates
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Caractersticas
Templates
Ejemplo uso Templates:
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Caractersticas
Clases Abstractas
No se pueden crear objetos. Tiene uno o mas mtodos abstractos (solo su rma) que son implementados por sus subclases
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Caractersticas
Interfaces
Una interfaz es una estructura que dene un contrato de implementacin. Una interfaz representa un conjunto de responsabilidades o comportamientos.
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Caractersticas
Reexin
Superclases. Nombres y tipos de atributos. Nombres y rmas de mtodos. Firmas de los constructores. Interfaces que la clase implementa.
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
SmallTalk RUBY
Content
1
Tipos de Datos abstractos Denicin Ejemplos El modelo de objetos Caractersticas Lenguajes Orientados a Objetos SmallTalk RUBY Ejercicios Quaterniones Java Ejemplo SmallTalk
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
SmallTalk RUBY
SmallTalk
SmallTalk es un lenguaje orientado a objetos puros, pues todas las entidades que maneja son objetos. El lenguaje se basa en conceptos tales como objetos y mensajes. Es descendiente del lenguaje SIMULA quien fue el primer lenguaje en implemetar programacin orientada a objetos y tiene sus orgenes en el Centro de Estudios de Palo Alto de Xerox, en los comienzos de 1970.
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
SmallTalk RUBY
Caracteristicas: SmallTalk
Orientacin a Objetos Tipado dinmico Interaccin entre objetos mediante envo de mensajes Herencia simple y con raz comn. Compilacin en tiempo de ejecucin o Interpretado.
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
SmallTalk RUBY
ELementos: SmallTalk
Objetos y variables
Atributos de un objeto:
Variables de clase: guardan atributos comunes a todas las instancias de una misma clase (clase parrafo, variable sangra). Variables de instancia: tienen valores asociados nicamente con cada instancia u objeto creado a partir de una clase (clase Persona, variable Nombre).
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
SmallTalk RUBY
ELementos: SmallTalk
Mensajes: La computacin en Smalltalk tiene lugar como resultado de enviar mensajes a los objetos. - Componentes de un mensaje: receptor, selector y argumentos. - Tipos de mensajes:
Unarios: no tienen argumentos y deben comenzar con una letra minscula. Ejemplo pilaUno desapilar Binarios: permiten pasar un argumento y su selector est formado por uno o dos caracteres no alfabticos adyacentes. Ejemplo x<y Palabra clave: permiten pasar uno o ms argumentos. Ejemplos "pilaUno apilar: 80", "vectorA at: 3 put: 19"
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
SmallTalk RUBY
ELementos: SmallTalk
Metodos: Los objetos responden a los mensajes mediante la ejecucin de mtodos.
Un mtodo se compone de dos partes: un encabezado y un cuerpo. Como en los lenguajes tradicionales, el encabezado se utiliza para identicar al mtodo cuando sea invocado y el cuerpo implementa la operacin correspondiente
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
SmallTalk RUBY
Elementos: SmallTalk
Clases
Una clase brinda la estructura general para objetos con caractersticas similares. El punto ms interesante es que en este lenguaje las clases son objetos a los cuales se les pueden enviar mensajes como a cualquier otro objeto.
Squeak Smalltalk tiene una gran variedad de clases predenidas. A estas clases el programador puede agregar otras, las cuales debern insertarse dentro de la estructura Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Lenguajes Otalorade Programacin jerrquica denida por Sebastian el lenguaje.
SmallTalk RUBY
El entorno Smalltalk es primordialmente grco y funciona como un sistema en tiempo de ejecucin que integra varias herramientas de programacin, utilidades multimedia y servicios del sistema operativo. Se utiliza una sintaxis explcita para denir ciertos elementos de un programa, tales como mtodos, por lo que dene una sintaxis abstracta de programas Smalltalk. Smalltalk-80 tiende a ser minimalista, el cual posee un grupo de 5 palabras reservadas: self, super, nil, true y false.
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
SmallTalk RUBY
Ejemplos: SmallTalk
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
SmallTalk RUBY
Content
1
Tipos de Datos abstractos Denicin Ejemplos El modelo de objetos Caractersticas Lenguajes Orientados a Objetos SmallTalk RUBY Ejercicios Quaterniones Java Ejemplo SmallTalk
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
SmallTalk RUBY
Generalidades de Ruby
Inicios de RUBY.
Ruby es un lenguaje de programacin interpretado, reexivo y orientado a objetos, creado por el programador japons Yukihiro "Matz" Matsumoto, quien comenz a trabajar en Ruby en 1993, y lo present pblicamente en 1995. Combina una sintaxis inspirada en Python y Perl con caractersticas de programacin orientada a objetos similares a Smalltalk.
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
SmallTalk RUBY
Semntica
Semantica de RUBY. Ruby es orientado a objetos: todos los tipos de datos son un objeto, incluidas las clases y tipos que otros lenguajes denen como primitivas, (como enteros, booleanos, y "nil"). Toda funcin es un mtodo. Las variables siempre son referencias a objetos, no los objetos mismos. A pesar de que Ruby no soporta herencia mltiple, la clases pueden importar mdulos como mixins. La sintaxis procedural est soportada, pero todos los mtodos denidos fuera del mbito de un objeto son realmente mtodos de la clase Object. Como esta clase es padre de todas las dems, los cambios son visibles para todas las clases y objetos.
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
SmallTalk RUBY
Iniciando en Ruby
Denir un mtodo.
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
SmallTalk RUBY
Iniciando en Ruby
Esto dene una nueva clase llamada Antrion y un par de mtodos para esa clase. Tambin toma nota de @nombre. Esta es una variable de instancia y est disponible para todos los mtodos de la clase.
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Content
1
Tipos de Datos abstractos Denicin Ejemplos El modelo de objetos Caractersticas Lenguajes Orientados a Objetos SmallTalk RUBY Ejercicios Quaterniones Java Ejemplo SmallTalk
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Quaterniones Java
Implementar el TDA Quaternion, con todas las operaciones basicas y hacer un programa de ejemplo(body) que implemente las interfaces. http://en.wikipedia.org/wiki/Quaternion
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Content
1
Tipos de Datos abstractos Denicin Ejemplos El modelo de objetos Caractersticas Lenguajes Orientados a Objetos SmallTalk RUBY Ejercicios Quaterniones Java Ejemplo SmallTalk
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Ejemplo SmallTalk
Ivn Duque , Leonardo Muoz, David Gallego, Julio Narvaez, Sebastian Lenguajes Otalorade Programacin
Appendix