1. Evolución de los lenguajes de programación
1.1. Lenguaje Máquina.
1.1.1. Es el lenguaje que entiende el hardware del computador, se maneja en código binario y es muy rápido de ejecutarse.
1.1.1.1. Es muy difícil de programar son entendidos por una arquitectura hardware. Se denominan lenguajes de bajo nivel, mientras que los que se encuentran más cercanos a los programadores y usuarios se denominan lenguajes de alto nivel.
1.2. Lenguaje Ensamblador
1.2.1. es un lenguaje de bajo nivel y específico a una arquitectura física o virtual, utilizado para programar microprocesadores, microcontro-ladores y otros circuitos integrados.
1.3. Lenguajes de Alto Nivel
1.3.1. Permite la creación de código fuente utilizando instrucciones escritas en un lenguaje casi natural, es decir entendible por el ser humano.
2. Objetos o entidades reales
2.1. Objetos físicos
2.1.1. Son los objetos tangibles, es decir los que se puede ver y tocar.
2.2. Objetos Lógicos
2.2.1. creados por la necesidad del hombre para plasmar la información en forma textual o gráfica
3. Procesos de abstracción e instanciación
3.1. Abstracción
3.1.1. proceso de abstracción consiste en identificar o se seleccionar entidades u objetos reales con similares características
3.2. Instanciación
3.2.1. El proceso de instanciación implica crear objetos a partir de clases. Para instanciar objetos en la aplicación informática, es necesario contar con el modelo de clases.
4. La poo frente a la programación tradicional
4.1. Se crean procedimientos que no se adaptan fácilmente a nuevas situaciones debido a que son para un propósito específico de manejo de datos.
5. Conceptos orientados a objetos
5.1. asocia nuevos fundamentos teóricos considerados como los elementos básicos, por ejemplo: objeto, clase, miembros de clase (datos y métodos)
6. Objeto
6.1. Un objeto es una entidad que contiene unos atributos o características particulares (datos) y un comportamiento que representa la forma de operar sobre dichos datos (métodos).
7. Mensaje
7.1. es la comunicación que se establece entre dos objetos; es decir, cuando un objeto A invoca a un objeto B, para que éste ejecute uno de sus métodos.
8. La herencia es útil por dos motivos:
8.1. a) Reutilización de código.
8.1.1. Las clases pueden agruparse en paquetes, librerías o bibliotecas para facilitar su distribución. Los programas que reutilizan estas bibliotecas, sólo necesitan conocer los nombres de dichas clases y su interfaz pública.
8.2. b) Creación de programas extensibles
8.2.1. La nueva clase derivada puede manejarse por el mismo programa sin modificación, como el programa es únicamente un gestor para un conjunto de objetos genéricos, los errores se aíslan automáticamente en los mismos objetos.
9. La Cardinalidad entre clases.
9.1. Herramientas de Modelado uml.
9.1.1. Propietarias o de costo: - Microsoft Visio - Rational Rose - Enterprise Architect - Visual Paradigm Open Source: - Argouml - Staruml - Poseidon
10. Objetivos
10.1. - Conceptualizar terminología orientada a objetos - Determinar la importancia de la POO en el desarrollo de aplicaciones de software - Abstraer objetos reales para representarlos por computadora - Modelar diagramas de clases mediante UML
11. Técnicas de programación
11.1. Programación Secuencial o Lineal
11.1.1. consiste en crear instrucciones de código una a continuación de otra y su ejecución es de igual forma secuencial incluyendo algunos saltos incondicionales
11.2. Programación modular
11.2.1. El código se organiza en procedimientos (subprogramas o subrutinas) y/o funciones, que consiste en un conjunto de instrucciones con el propósito de resolver una tarea determinada.
11.3. Programación estructurada
11.3.1. Es una técnica orientada a mejorar la claridad y calidad de los programas utilizando subrutinas y estructuras de control (secuencial, selección: if, else, switch e iteración o bucles: while y for)
11.4. Programación Orientada a Objetos
11.4.1. Es una técnica o estilo de programación que utiliza objetos como bloque esencial de construcción.
11.5. Programación Visual
11.5.1. Es una técnica de programación que crea aplicaciones del mundo real para entorno Windows o Web.
12. La programación tradicional
12.1. es una caja negra que realiza una tarea y en ciertos casos accede a estructuras de datos globales y se comunican entre sí mediante el paso de parámetros.
13. Programación orientada a objetos (poo)
13.1. es utilizada para crear aplicaciones informáticas extensas en base a objetos del mundo real denominados entidades.
14. Clase
14.1. Un objeto es creado cuando la clase correspondiente recibe un mensaje solicitando su creación; debido a este proceso los objetos se conocen como instancias de clase.
15. Miembros de una clase: datos y métodos
15.1. Los datos
15.1.1. son considerados también campos, tienen asociado un tipo de dato que puede ser primitivo (int, char, double, etc.) o tipo personalizado (clase).
15.2. Los métodos
15.2.1. determinan cómo tiene que actuar el objeto cuando recibe un mensaje y permiten gestionar los datos miembro para dicho objeto.
16. Herencia
16.1. permite definir nuevas clases denominadas “derivadas, hijas o subclases”, a partir de clases ya existentes, llamadas “base, padre o superclase”. De esta manera los objetos pueden construirse en base a otros objetos ya creados.
17. Características de la programación orientada a objetos
17.1. 1. Abstracción
17.1.1. consiste en crear un modelo de clases a partir de la selección de las características esenciales y comportamientos comunes de un grupo de objetos reales.
17.2. 2. Encapsulamiento
17.2.1. el proceso de agrupar datos y métodos en una única entidad con identidad propia se denomina encapsulamiento.
17.3. 3. Modularidad
17.3.1. Es la propiedad que hace posible la división de un programa en paquetes o componentes autónomos y a la vez relacionados y con capacidad de compilarse por separado
17.4. 4. Ocultación
17.4.1. la propiedad de la ocultación o aislamiento hace posible que los objetos oculten detalles de declaración de datos e implementación de métodos
17.5. 5. Polimorfismo
17.5.1. Consiste en múltiples comportamientos de objetos cuando se invoca a un mismo método en distintos contextos.
17.6. 6. Herencia
17.6.1. es quizá la propiedad más importante, debido a que es posible implementar jerarquías de clases de objetos con propósito de reutilización de código y creación de programas extensos.
17.7. 7. Recolección de basura
17.7.1. garbage collector o recolección de basura es el procedimiento para destruir automáticamente los objetos que ya no posean ninguna referencia y desvincularlos de la memoria asignada.
18. Soporte de la p.o.o. en java
18.1. es un lenguaje orientado a objetos, puro y, soporta casi todos los conceptos de programación orientada a objetos, como por ejemplo: objeto, clase, método, dato (variable miembro), mensaje, herencia, polimorfismo, encapsulamiento
19. Diagramas de clases con uml (lenguaje unificado de modelado)
19.1. UML
19.1.1. es un conjunto de herramientas, que permite modelar (analizar y diseñar) sistemas orientados a objetos.
19.2. Diagrama de clases
19.2.1. Un diagrama de clases representa las clases que serán utilizadas dentro del sistema y las relaciones que existen entre ellas.
20. Elementos del diagrama de clases:
20.1. El componente clase:
20.1.1. Una clase es considerada una plantilla para instanciar o crear objetos.
20.2. Las relaciones entre clases:
20.2.1. Relación de Herencia
20.2.1.1. Una clase puede derivarse de otra clase base, heredando datos y métodos públicos, protegidos y de paquete.
20.3. Relación de Agregación:
20.3.1. Relación de Asociación:
20.3.1.1. es una relación fuerte, es para objetos que colaboran con otros objetos.