PROGRAMACIÓN ORIENTADA A OBJETOS



Documentos relacionados
Tutorial de UML. Introducción: Objetivos: Audiencia: Contenidos:

Introducción a la programación orientada a objetos

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos

El conjunto de conocimientos científicos y técnicos que hacen posible la resolución de forma automática de problemas por medio de las computadoras.

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

DIAGRAMA DE CLASES EN UML

CAPÍTULO I. Sistemas de Control Distribuido (SCD).

Luis Eduardo Barón Bienvenidos al Módulo N. 3 de Internet Para Emprendedores. Yo soy Luis Eduardo Barón. Álvaro Mendoza Y yo soy Álvaro Mendoza.

UNIDAD EJECUTORA DE CONSERVACION VIAL MANUAL DEL USUARIO DEL SISTEMA INTEGRAL DE CONTROL DE PROYECTOS

Diagramas de Clases ~ 1 ~ Ing. Fabián Silva Alvarado

Para crear formularios se utiliza la barra de herramientas Formulario, que se activa a través del comando Ver barra de herramientas.

Capitulo V Administración de memoria

Introducción. 1. Lenguajes de máquina 2. Lenguajes de ensamblador 3. Lenguajes de alto nivel

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

Instructivo Asesoría Básica Comunidad Virtual SharePoint 2010

Unidad: Representación gráfica del movimiento

Estructuras de Datos y Algoritmos. Árboles de Expresión

Lección 24: Lenguaje algebraico y sustituciones

Servicio de estadísticas de Alojamiento Fecha de revisión: 19/09/2005

Estimado usuario. Tabla de Contenidos

d s = 2 Experimento 3

ZCARTAS: Iniciación a la suma y resta de números enteros Introducción Actividad 1: Escenario con cartas numeradas desde -2 hasta 2...

ANÁLISIS Y GESTIÓN DEL DESARROLLO DE SOFTWARE TEMA 5: LA PLANIFICACIÓN DEL PRODUCTO

COMPETENCIA MATEMÁTICA Y RESOLUCIÓN DE PROBLEMAS

Liderazgo se genera en el lenguaje

DCU Diagramas de casos de uso

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES

Curso de Doctorado: Tecnologías de Objetos

QUÉ ES Y PARA QUÉ SIRVE UML? VERSIONES DEL LENGUAJE UNIFICADO DE MODELADO. TIPOS DE DIAGRAMAS. INGENIERÍA DEL SOFTWARE (DV00205D)

Diseño Estructurado de Algoritmos

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

Manual etime para supervisores

Instalación del programa PSPP y obtención de una distribución de frecuencias.

INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT

2. Conceptos básicos Abstracción La abstracción como un proceso mental natural La abstracción en el desarrollo de software

Institución Educativa Inem Felipe Pérez de Pereira 2012 Estrategia taller. AREA: Sistemas de información Taller Previsto

Guía Corta: Alcance y Asociaciones. 1. Preliminares: Nombres y Asociaciones

Patrones de Diseño Orientados a Objetos 2 Parte

Centro de Capacitación en Informática

CONCEPTOS PREVIOS TEMA 2

EDICIÓN Y FORMATO (II)

MANUAL DE USUARIO. Sistema de Administración de Proyectos de Vinculación con la Colectividad (SAPVC) MANUAL DE USUARIO DOCENTE

MANEJANDO FICHEROS Y CARPETAS

MANUAL PARA CREAR USUARIOS. Guía para crear, desactivar e inmovilizar Usuarios de Salesforce

Diagramas del UML. A continuación se describirán los diagramas más comunes del UML y los conceptos que representan: Diagrama de Clases

TEMA 7: DIAGRAMAS EN UML

SISTEMA DE BECAS AL EXTERIOR

BASE DE DATOS RELACIONALES

GESTION DE REQUISICIONES VIA WEB MANUAL DEL USUARIO

Manual para Empresas Prácticas Curriculares

2.2.- Paradigmas de la POO

Curso Internet Básico - Aularagon

Yalù Galicia Hernàndez. Yalú Galicia Hdez. (FCC/BUAP)

SISTEMA DE GESTIÓN DE BASE DE DATOS (Database Management System (DBMS))

UTILIZACIÓN DE UNA CUENTA DE CORREO ELECTRÓNICO (NUEVO) Acceso al correo electrónico

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech

Capítulo 6. Introducción a la POO

De acuerdo con la diferente naturaleza de las operaciones, esta política diferenciará fundamentalmente entre dos tipos de operaciones:

Tienda Virtual Synergy (Parte 2)

Control total por Ordenador de la Maqueta. Ponente: Paco Cañada

Control de Inventarios SisMod

Temas de electricidad II

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

Programa Presupuestos de Sevillana de Informática.

Proyectos de Innovación Docente

CURSO INSTALACION E IMPLEMENTACION ALOJA SOFTWARE HOTEL MODULO 02: Datos Adicionales de configuración [1]

Gestión de Permisos. Documento de Construcción. Copyright 2014 Bizagi

Figura 4.1 Clasificación de los lenguajes de bases de datos

MANUAL PARA REALIZAR LA SOLICITUD ELECTRÓNICA

Base de datos en Access

Guía de uso del Cloud Datacenter de acens

En esta unidad añadiremos información sobre EXT3 y trabajaremos con aspectos visibles que nos proporcionan estos sistemas de archivos.

SISTEMA DE GESTIÓN DOCUMENTAL QUIPUX MÓDULO DE TAREAS. Manual de Usuario. Septiembre Sistema de Gestión Documental Quipux

Capitulo 5. Implementación del sistema MDM

Instalación y configuración inicial del sistema SIU-Kolla Versión 3.0.0

La ventana de Microsoft Excel

Lección 4: Suma y resta de números racionales

Diseño orientado a los objetos

Matemáticas para la Computación

Introducción Cómo empezar a monetizar mi blog? Porqué son tan interesantes los ingresos por sistemas de afiliados?...

Mejorando las ventas utilizando el conocimiento sobre nuestros clientes

FORMACIÓN DE EQUIPOS DE E-LEARNING 2.0 MÓDULO DE DISEÑO Y PRODUCCIÓN DE MATERIALES UNIDAD 6 B

Murillo explica los principales lineamientos económicos Heriberto Rosabal diciembre 3, 2013Economía, Otros Artículos sobre Cuba, Política, Sociales

Norma ISO 9001:2015. Cuáles son los cambios presentados en la actualización de la Norma?

Introducción a Computación

Diagramas de Clase en UML 1.1

INTRODUCCIÓN. La influencia de las Tecnologías de la Información y la Comunicación (TIC) en la

Base de datos relacional

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

Capitulo III. Diseño del Sistema.

Lección 1-Introducción a los Polinomios y Suma y Resta de Polinomios. Dra. Noemí L. Ruiz Limardo 2009

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F)

VENTAJAS Y DESVENTAJAS DE LAS TECNOLOGIAS

Unidad II: Diseño de Bases de Datos y el modelo E-R. 2.1 El Proceso de Diseño

GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B)

Ingreso al Sistema Administrador

Repetir el proceso para cada abstracción identificada hasta que el diseño este expresado en términos sencillos

Transcripción:

PROGRAMACIÓN ORIENTADA A OBJETOS Clase 1. Introducción Profesor: Diego Sánchez Gómez

Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación Orientada a Objetos 6. Características fundamentales de las clases en C++ 7. Representaciones Gráficas 8. Construcción de una clase 9. Atributos 10. Métodos. Implementación de los métodos de una clase 11. Creación de objetos 12. Paso de mensajes 13. Resumen

Lenguajes maquina, lenguajes ensambladores y lenguajes de alto nivel Los programadores escribe instrucciones en diversos lenguajes de programación, algunos de los cuales los comprende directamente la computadora, mientras que otros requieren pasos intermedios de traducción. En la actualizad se utilizan cientos de lenguajes de computación. Estos se dividen en tres tipos generales: 1. Lenguaje maquina. 2. Lenguaje ensamblador. 3. Lenguaje de alto nivel.

Cualquier computadora puede entender de manera directa solo su propio lenguaje maquina, el cual se define según su diseño de hardware. Por lo general los lenguajes maquina consisten en cadenas de números los cuales al final se traducen en 1 y 0 (lenguaje binario) que instruyen a las computadoras para realizar sus operaciones mas elementales. Los lenguajes maquina son dependientes de la maquina (es decir, un lenguaje maquina en particular puede usarse solo en un tipo de computadora). Dichos lenguajes son difíciles de comprender para los humanos. Ejemplo: He aquí la sección de uno de los primeros programas en lenguaje maquina, el cual suma el pago de las horas extras al sueldo base y almacena el resultado en el sueldo bruto. +1300042774 +1400593419 +1200274027

La programación en lenguaje maquina era demasiado lenta y tediosa para la mayoría de los programadores, en vez de utilizar las cadenas de números que las computadoras podían entender de manera directa, los programadores empezaron a utilizar abreviaturas del ingles para representar las operaciones elementales. Estas abreviaturas formaron la base de los lenguajes ensambladores. Se desarrollaron programas traductores conocidos como ensambladores para convertir los primeros programas en lenguaje ensamblador a lenguaje maquina, a la velocidad de la computadora. Ejemplo: el siguiente programa realiza lo mismo que el ejemplo anterior. load sueldobase add sueldoextra store sueldobruto

Aunque este código es mas claro para los humanos, las computadoras no lo pueden entender si no hasta que se traduce a lenguaje maquina. El uso de las computadoras se incremento rápidamente con la llegada de los lenguajes ensambladores, pero los programadores aun requerían de muchas instrucciones para llevar a cabo incluso hasta las tareas mas simples. Para agilizar el proceso de programación se desarrollaron los lenguajes de alto nivel. En donde podían escribirse instrucciones para realizar tareas importantes. Los programas traductores denominados compiladores, convierten programas en lenguaje de alto nivel a lenguaje maquina. Los lenguajes de alto nivel permiten a los programadores escribir instrucciones que son muy similares al ingles común, y contienen la notación matemática común. Ejemplo: Un programa de nomina escrito en lenguaje de alto nivel podría contener una instrucción como la siguiente: sueldobruto = sueldobase + sueldoextra

Desde el punto de vista del programador, los lenguajes de alto nivel son mucho mas recomendables que los lenguajes maquina o ensamblador. Java es por mucho, el lenguaje de alto nivel mas utilizado. El proceso de compilación de un programa escrito en lenguaje de alto nivel a un lenguaje maquina puede tardar un tiempo considerable en la computadora. Los programas interpretes se desarrollaron para ejecutar programas en lenguaje de alto nivel de manera directa (sin el retraso de la compilación), aunque con mas lentitud de la que se ejecutan los programas compilados.

Programación Orientada a Objetos Un programa se encarga de procesar información. El usuario se encarga de dos cosas fundamentales: - Los datos que se procesan (datos) - Las operaciones que procesan esos datos (funciones) Podemos ligar datos con operaciones Las operaciones se aplican sobre unos datos, más exactamente, sobre unos tipos de datos. Por ejemplo, si tenemos la operación de multiplicar complejos, no tiene sentido multiplicar cadenas. Si tenemos un arreglo de enteros, podemos recorrerlo, buscar un elemento, etc.. Si tenemos una pantalla, podemos escribir en ella, borrar, etc.. Profesor: Diego Sánchez Gómez

Aparece otro paradigma de programación; reconocemos los datos sobre los que vamos a trabajar y definimos esos datos por las operaciones que se pueden realizar sobre ellos. En la programación orientada a objetos, lo importante son los objetos. Objeto: entidad compuesta de unos datos y las operaciones que realizamos sobre esos datos. Un objeto es una unidad dentro de un programa de computadora que consta de un estado y de un comportamiento, que a su vez constan respectivamente de datos almacenados y de tareas realizables durante el tiempo de ejecución.

Un objeto se caracteriza por varios conceptos: Atributos: estos son los datos que caracterizan al objeto. Son variables que almacenan datos relacionados al estado de un objeto. Métodos (usualmente llamados funciones de miembro): Los métodos de un objeto caracterizan su comportamiento, es decir, son todas las acciones (denominadas operaciones) que el objeto puede realizar por sí mismo. Estas operaciones hacen posible que el objeto responda a las solicitudes externas (o que actúe sobre otros objetos). Además, las operaciones están estrechamente ligadas a los atributos, ya que sus acciones pueden depender de, o modificar, los valores de un atributo. Identidad: El objeto tiene una identidad, que lo distingue de otros objetos, sin considerar su estado. Por lo general, esta identidad se crea mediante un identificador que deriva naturalmente de un problema (por ejemplo: un producto puede estar representado por un código, un automóvil, por un número de modelo, etc.).

Clase Representan un tipo particular de objetos Objetos con características y comportamiento similar Categorías de objetos Cada clase tiene asociado un código (definición de la clase), que determina los atributos que tienen los objetos de la clase. Los métodos que pueden ejecutar los objetos de la clase y cómo lo hacen

Ejemplo Clase Automóvil: Objeto Automóvil Atributos Marca Color Velocidad Máxima Potencia Año Métodos Arrancar motor Detener motor Acelerar Frenar Identidad: Automóvil Toyota Prius Auto hibrido

De cada clase pueden crearse múltiples objetos. Cada objeto tiene valores propios asignados a los atributos. Profesor: Diego Sánchez Gómez

Para ayudar a comprender los objetos y su contenido, empecemos con una analogía simple. Suponga que desea conducir un auto y hacer que vaya mas rápido al oprimir el pedal del acelerador. Qué debe ocurrir para que usted pueda hacer esto? Bueno, antes que pueda conducir un auto, alguien tiene que diseñarlo. Por lo general, un auto empieza en forma de dibujos de ingeniería, similares a los planos de construcción que describen el diseño de una casa. Esos dibujos de ingeniería incluyen el diseño del pedal del acelerador. El pedal oculta los complejos mecanismos que se encargan de que el auto aumente su velocidad, de igual forma que el pedal del freno oculta los mecanismos que disminuyen la velocidad del auto y el volante oculta los mecanismos que hacen que el auto de vuelta. Esto permite que las personas con poco o nada de conocimiento acerca de como funcionan los motores, los frenos y los mecanismos de la dirección puedan conducir un auto con facilidad.

Métodos y Clases Ahora vamos a utilizar nuestro ejemplo del auto para introducir algunos conceptos clave de la programación orientada a objetos. Para realizar una tarea en una aplicación se requiere un método, el cual aloja las instrucciones del programa que se encargan de realizar sus tareas. El método oculta al usuario estas tareas, de la misma forma que el pedal del acelerador de un auto oculta al conductor los mecanismos para hacer que el auto vaya mas rápido. En la programación Orientada a Objetos creamos una clase para alojar un conjunto de métodos que realizan las tareas de esa clase. Por ejemplo, una clase que representa una cuenta bancaria podría contener un método para depositar dinero en una cuenta, otro para retirar y un tercero para solicitar el saldo actual. Una clase es similar en concepto a los dibujos de ingeniería de un auto, que contiene el diseño de un pedal acelerador, volante de dirección, etc.

Instanciamiento Así como alguien tiene que construir un auto a partir de sus dibujos de ingeniería para que otra persona lo pueda conducir después, también es necesario crear un objeto de una clase para que un programa pueda realizar las tareas definidas por los métodos de esas clase. Al proceso de hacer esto se le denomina instanciamiento. Entonces, un objeto viene siendo una instancia de su clase.

Reutilización Así como los dibujos de ingeniería de un auto se pueden reutilizar muchas veces para construir muchos autos, también es posible reutilizar una clase muchas veces para crear muchos objetos. Al reutilizar las clases existentes para crear nuevas clases y programas, ahorramos tiempo y esfuerzo. La reutilización también nos ayuda a crear sistemas mas confiables y efectivos, debido a que con frecuencia las clases y los componentes existentes pasan por un extenso proceso de prueba, depuración y optimización del desempeño. De la misma manera en que la noción de piezas intercambiables fue crucial para la Revolución Industrial, las clases reutilizables son cruciales para la revolución de software incitada por la tecnologías de objetos.

Encapsulamiento Las clases encapsulan (envuelven) los atributos y métodos en objetos; los atributos y métodos de un objeto están muy relacionados entre si. Los objetos se pueden comunicar entre si, pero por lo general no se les permite saber como están implementados otros objetos; los detalles de implementación están oculto dentro de los mismos objetos, este ocultamiento de información, es crucial para la buena ingeniería de software.

Herencia Es posible crear una nueva clase de objetos con rapidez y de manera conveniente mediante la herencia: la nueva clase absorbe las características de una clase existente, con la posibilidad de personalizarlas y agregar características únicas propias. En nuestra analogía del auto, sin duda un objeto de la clase convertible es un objeto de la clase mas general llamada automóvil pero, de manera mas especifica, el techo puede ponerse o quitarse.

Referencias Deitel Java. Como programar. Paul Deitel, Hervey Deitel. Editorial Pearson. Año 2010