Download Descargar archivo adjunto

Document related concepts

Polimorfismo (informática) wikipedia , lookup

Visitor (patrón de diseño) wikipedia , lookup

Common Lisp wikipedia , lookup

Rust (lenguaje de programación) wikipedia , lookup

C Sharp wikipedia , lookup

Transcript
Introducción
 Todos los lenguajes de programación son distintos
entre si.
 Sin embargo, pueden ser agrupados según la forma de
pensar y estructurar los programas a desarrollar con
ellos.
 Esto es lo que llamamos un paradigma.
Paradigmas
 Existen varios paradigmas populares:
 Funcional
 Lógico
 Estructurado
 Orientado a Objetos
 Híbridos
 Cada uno tiene sus ventajas y desventajas.
 Para cada problema, uno puede ser mas adecuado
que otro.
Tipos Abstractos de Datos
 Pese a sus diferencias, todos los paradigmas intentan modelar,
de una forma u otra, entidades del “mundo real”
 A estas entidades, las llamaremos Tipos Abstractos de Datos
 Hasta ahora, los únicos tipos abstractos de datos que
representábamos con la computadora eran tipos de datos
simples:
 Boolean
 Integer
 Double
 String
Tipos de datos abstractos
 Para esto, los TAD (Tipo de Dato Abstracto) definen:
 Características: Como es el tipo de dato
 Operaciones: Que puede hacer el tipo de dato
 Ejemplo
 TAD Auto
 Características




Color
Marca
Cantidad de puertas
Tipo de motor
 Operaciones




Encender
Apagar
Acelerar
Frenar
Tipos de datos abstractos
 Ejemplos de TADS.
 Hombre:


Características?
Operaciones?
 Futbol:


Características?
Operaciones?
 Un poco mas abstracto y mas correspondiente a c#
 Combobox:


Características?
Operaciones?
 Uno no visual, pero que se podría aplicar
 Contador:


Características?
Operaciones?
Programación estructurada
 Estructuras básicas que arman un programa (condicionales, repetitivas,
funciones, etc..).
 Concatenación de instrucciones (ejecución “una detrás de la otra”).
 Representación de un problema como una serie de pasos ordenados a
seguir.
 Separación en sub-estructuras (funciones)
Programación Orientada a Objetos
 Conceptos Clave




Representación de TADs con Clases
Representación de instancias con Objetos
Pasaje de mensajes
Representación del problema como un conjunto de entidades que se
relacionan entre si.
 TADs y el mundo de Objetos
 En el paradigma orientado a objetos, los TAD son representados por
algo llamado “Clase”.
 Una Clase permite definir cuales serán las propiedades
características) y métodos (operaciones) que tendrá el tipo de dato.
 TAD -> Clase
 Característica -> Propiedad
 Operación -> Método
Clases y Objetos
 En la Programación Orientada a Objetos, las clases
definen como serán los elementos con los que se
trabajará y los objetos son las instancias concretas de lo
definido en las clases.
 El valor que tienen las propiedades de un objeto definen
su estado, en un momento dado.
 Veamos un ejemplo con el TAD Auto...
Clases y Objetos
Clases y Objetos
 En principio, todas las propiedades y los métodos definidos en una
clase pueden ser accedidos desde cualquier parte del programa.
 En nuestro caso, podríamos querer hacer algo distinto.
 Por ejemplo: la velocidad del auto solo se podrá modificar utilizando
los métodos “Acelerar” y “Frenar”.
 Aquí es donde entran en juego los modificadores “public” y
“private”.
 Public: el método o propiedad puede ser utilizado desde
cualquier parte del programa.
 Private: el método o propiedad puede ser utilizado únicamente
dentro de la clase.
Interfaces
 Varios lenguajes orientados a objetos permiten utilizar el
concepto de interfaz.
 Las interfaces sirven para definir que propiedades y
operaciones públicas deberá tener una clase, sin tener
que definir la clase en si.
 Son consideradas contratos entre el que usará la clase y el
que la programa.
 Cuando una Clase cumple este contrato, se dice que
implementa la interfaz en cuestión.