Introducción a la POO

Revisión histórica

Evolución histórica

Evolución en cuanto a tecnología

Microprocesadores

Lenguaje hexadecimal

Equivalente a 16 ceros o unos

Lenguajes ensambladores o lenguaje de bajo nivel

Transcripción de nemonicos (palabras fáciles de recordar) a secuencias de unos y ceros ^

Lenguaje de alto nivel

Mas rápido y simple, ayuda a detectar y corregir los errores mas fácilmente

Cada instrucción de lenguaje de alto nivel equivale a cientos de instrucciones en un ensamblador

La sintaxis de las instrucciones y los nemónicos se parecen algo más al lenguaje cotidiano

Evolución en cuanto a la conceptualización

Programación Lineal

Cada línea de programa debe ir precedida de un identificador (una etiqueta) para poder referenciarla

Programación estructurada

Se destaca por usar subprogramas o funciones con la finalidad de mejorar la calidad y tiempo de desarrollo minimizando errores

Programación orientada a objetos

Ofrece mayor dominio sobre el programa ya que los objetos son entidades autónomas que se controlan a si mismos

Evolución en cuanto al enfoque

Programación procedural

Se deben establecer hechos, reglas de manejo de decisiones y como alcanzar el objetivos que se persigue

Algunos lenguajes que trabajan de forma procedural

Java

C

Programación declarativa

PROLOG

Se basa en manipulaciones lógicas, utiliza la lógica proposicional, lógica de predicados para realizar sus deducciones.

No se programa, sino que se declaran hechos, es la maquinaria del lenguaje quien se
encargará de extraer las conclusiones que resulten inferibles de estos hechos.

Programación orientada a objetos

Definición de clase

Una clase, es simplemente una abstracción que hacemos de nuestra experiencia sensible

Definición de objetos

Conjunto de datos (características o atributos) y métodos (los comportamientos que se puedan realizar)

Herencia

La herencia, es la cualidad más importante de la POO, ya que le permite reutilizar todo el código escrito para las superclases re-escribiendo solo aquellas diferencias que existan entre éstas y las subclases.

Encapsulación

Es un mecanismo para reunir datos y métodos dentro de una estructura ocultando la implementación del objeto, es decir, impidiendo el acceso a los datos por cualquier medio que no sean los servicios propuestos.

Polimorfismo

Se entiende por aquella cualidad que poseen los objetos para responder de distinto modo ante el mismo mensaje.

Sobrecarga

Es cuando se tienen carios métodos con el mismo nombre siempre y cuando los parámetros recibidos o el numero de ellos sean diferentes

¿Que es POO?

Son un conjunto de técnicas que permiten incrementar el proceso de producción de software; aumentando la productividad por un lado y permitiéndo abordar proyectos de mayor envergadura

Planteamiento de la implementación

Planificación jerárquica de clases

Uso de herramientas como "Rational Rose"

Consejos para planificar modelos previos a la planificación de clases

Dividir

Construir métodos en pequeñas tareas con la finalidad de aumentar la probabilidad de reutilizar el método en otro momento

No pensar en forma procedural

En OOP no se puede pensar de una forma procedural, una clase no es un conjunto de funciones relacionadas, es un objeto tan real como los demás que están fuera del ordenador. Los objetos son de verdad, no son cajas de almacenamiento de código.

Los métodos no son funciones

No defina métodos como si fueran funciones, sino como acciones inherentes al objeto, con la finalidad de cambiar el funcionamiento interno sin que cambie el nombre de la clase ni losnombre de los métodos