Programación Orientada a Objetos

Slides:



Advertisements
Presentaciones similares
Unidad 3 Lenguajes .Net y POO
Advertisements

Curso de Java Capitulo 7: Continuación Poo Profesor:
Lenguaje de programación Java
Estructura de un Sistema Operativo
Arquitectura CLARO-TECNOTREE
Introducción a la Orientación a Objetos
Programación Orientada a Objetos (P.O.O.)
Introducción 1 Puntos Clave –La orientación a objetos representa un cambio radical en los métodos tradicionales de creación de software –Los métodos tradicionales.
La Programación Orientado a Objetos
Tipos de Datos Abstractos Modularidad
POO Santiago, Mayo 2004 TRABAJO DE INVESTIGACIÓN POO Programación Orientada a Objetos CENAFOM Carolina Bravo V. Jaime Jofré B.
GENERACIONES DE LENGUAJES DE PROGRAMACIÓN
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
Aplicación del paradigma orientado a objetos
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
ORIENTADO A OBJETOS ESTUDIANTE JESSICA LORENA LEAL MEDINA INGENIERIA DE SOFTWARE PROGRAMA INGENIERIA DE SISTEMAS UNIVERSIDA COOPERATIVA DE COLOMBIA NEIVA-HUILA.
PROGRAMACION ORIENTADA
UNIDAD I. INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA.
POO (Programación Orientada a Objetos)
METODOLOGIA DE LA PROGRAMACION
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
Funciones en lenguaje C
Lic. Rosemary Torrico Bascopé
UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,
PROGRAMACIÓN ORIENTADA A OBJETOS
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
 El termino OO, significa que el software es organizado como una colección de objetos. Un objeto es un paquete de software que contiene datos y procedimientos.
Semana 5 Subprogramas..
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
PROGRAMACIÓN ORIETADA A OBJETOS
Programación Orientada a Objetos Ingeniero Anyelo Quintero Especialista en Dirección Prospectiva y Estratégica de las Organizaciones Universitarias Master.

Inteligencia artificial
Fundamentos de Programación
Introducción a la POO • ¿Qué es la programación orientada a objets (POO)? – Un “paradigma” de programación – Una forma de pensar acerca de los problemas.
Herencia y tipos ● Cuanta memoria se debe asignar a un objeto cuando se asigna en la pila ● La asignación debe hacerse antes de que se conozca la cantida.
Elementos básicos del lenguaje
Sara Isabel Osorio Alacraz Ana Isabel Vallejo Grisales
INSTITUTO TECNOLOGICO DE MINATITLAN ASIGNATURA: FUNDAMENTOS DE PROGRAMACION DOCENTE: JOSE ANGEL TOLEDO ALVAREZ ALUMNA: ALEJANDRA OSORIO ARVISU SEMESTRE:
¿Qué son Los Lenguajes de Programación?
Programación Orientada a Objetos (P.O.O.)
Facultad de Ingeniería
Programación Orientada a Objeto
Metodología de la programación
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
Introducción a la Programación Orientada a Objetos (POO)
POO U1: INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS.
Ing. Esp. Ricardo Cujar. Programación Orientada a Objetos  Modelo de desarrollo de software.  Modo de pensar del hombre y no de la máquina.  Abstracción.
Programación orientada a objetos
DIAGRAMA DE CLASES.
Universidad Tecnológica de Izúcar de Matamoros Programa Educativo: Tecnologías de la Información Asignatura: Base de datos para aplicaciones Tema: Base.
PROGRAMACIÓN IV INTRODUCCIÓN.
Ing. Johanna Macias Algoritmo, Estructura y Programación III.
ORIENTACIÓN A OBJETOS El paradigma.
Programación Orientada a Objetos: CLASES Y OBJETOS
La Programación Orientado a Objetos
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Prof. Manuel B. Sánchez. Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno.
Programación Orientada a Objetos Unidad 5. Los objetos son entidades que combinan estado Contiene toda la información denominados atributos REPASO Cada.
2015-BM5A. Introducción Durante años, los programadores se han dedicado a construir aplicaciones muy parecidas que resolvían una y otra vez los mismos.
Presentación De UML Lenguaje estándar para escribir planos de software Se usa para visualizar, especificar, construir y documentar los artefactos de un.
PARADIGMA viene del Griego Paradeima = Modelo. Un paradigma es el resultado de los usos, y costumbres, de creencias establecidas de verdades a medias,
Modelado UML Diagrama de Clases
:: Prof. Yeniffer Peña Introducción a JAVA Presentación Programación I.
La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Prof. Manuel B. Sánchez. Es un mecanismo y uno de los pilares de la POO que permite definir nuevas clases a partir de otras preexistentes. La Herencia.
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
PROGRAMACION ORIENTADA A OBJETOS
Transcripción de la presentación:

Programación Orientada a Objetos Ingeniero Anyelo Quintero

CONCEPTOS DE PROGRAMACION ORIENTADA A OBJETOS Los primeros programas se realizaban con instrucciones binarias de maquina, de modo que se cargaban en memoria a través de un conjunto de interruptores o a través de un teclado numérico. A medida que crecían los programas, se incrementaba su complejidad. Esto se comienza a resolver con un traductor llamado ensamblador (convierte los programas en ensamblador -- código de maquina) Sin embargo se necesitaban herramientas mas potentes. Lenguajes como FORTRAN, BASIC, PASCAL y C resolvieron esta complejidad. Con Pascal y C nació la programación estructurada facilitando la escritura de programas y disminuyendo la complejidad. Hoy día el aumento de potencia de las características de hardware y software (frecuencia de procesadores, capacidad de D.D, gráficos, conexión de redes, etc.) incrementando la complejidad de los programas.

En la década de los 90 aparece la programación orientada a objetos como un nuevo medio para organizar código y datos y así establecer un control creciente sobre la complejidad del proceso de desarrollo de software. No es una idea nueva, sus conceptos ya existían en lenguajes como Simula 67 y Smalltalk. Las propiedades fundamentales de POO son: Objetos (abstracción de datos), herencia y polimorfismo.

EVOLUCION DE LA PROGRAMACION PROGRAMACION LINEAL Los primeros lenguajes de programación se diseñaron para desarrollar tareas simples. Estos programas eran cortos. Menos de 100 líneas de código fuente. Las primeras versiones de lenguajes de programación lineal como BASIC, COBOL y FORTRAN no reutilizaban código existente, sino que se duplicaban segmentos de software. Se ejecutaban en forma lógica, su control era difícil y se producían saltos a lo largo del programa. Además no se podía controlar la visibilidad de los elementos dato. Todos los datos eran globales, por lo tanto podían ser modificados por cualquier parte del programa y así afectar el resultado del programa. No existían datos locales. Esto trajo como consecuencia la aparición de lenguajes estructurados (PASCAL, C, ADA…) así como una nueva estructura (procedimientos).

Procedimiento: Programa o rutina que consiste en secuencias de instrucciones que realizan una tarea determinada. Desventajas. Los procedimientos necesitan muchos sistemas de comunicación entre si. PROGRAMACION MODULAR La solución consistió en romper los programas grandes en componentes mas pequeños construidos independientemente, luego se combina para formar el sistema completo. El soporte mas elemental de la programación modular es la subrutina (secuencia de instrucciones a las que se le da un nombre independiente; esta rutina se puede ejecutar incluyendo su nombre).

PROGRAMACION ESTRUCTURADA En la decada de los sesenta y principio de los setenta apareció la programación estructurada. Los programas estructurados se organizan de acuerdo a las operaciones que se ejecutan El programa se descompone en procedimientos individuales (funciones) cada uno de los cuales se descompone en subprocedimientos. La información se pasa entre procedimientos utilizando parámetros. Los procedimientos pueden tener datos locales a los que no se puede acceder desde fuera del ámbito del procedimiento. Aislando los procesos dentro de funciones, un programa estructurado minimiza el riesgo de que un procedimiento afecte otro, facilitando la detección de problemas mediante la localización de errores. Las variables globales desaparecen y se sustituyen por parámetros y variables locales.

La programación estructurada introdujo el concepto de Abstracción (capacidad de examinar algo sin preocuparse de los detalles internos). El COMO se realiza una tarea no es importante mientras el procedimiento sea fiable. Todo esto se conoce como abstracción funcional. La debilidad aparece cuando varios programadores trabajan en una aplicación como un equipo. ( separación conceptual de datos y código) y datos mutuamente compartidos

ABSTRACCION DE DATOS Es la extracción de las propiedades esenciales de un concepto. Los datos, las estructuras de datos e ítem se pueden utilizar sin preocuparse sobre los detalles de la implementación. Ejemplo: los números en coma flotante son abstracciones en todos los lenguajes de la programación, no tiene que preocuparse de la representación binaria. Las estructuras de datos y los tipos de datos son ejemplo de abstracción, los procedimientos y las funciones. Son otro ejemplo.

PROGRAMACION ORIENTADA A OBJETOS Es un nuevo medio de organizar código y datos que aseguran un control creciente sobre la complejidad del proceso de desarrollo del software. Conjunto de técnicas que se pueden utilizar para hacer el desarrollo de programas mas eficiente mientras se mejora la fiabilidad de los programas. La POO es una técnica o estilo de programación que utiliza objetos como bloque esencial de construcción. Los objetos son en realidad como los tipos abstractos de datos. Un TAD es un tipo de dato definido por el programador con un conjunto de operaciones que se pueden realizar sobre ellos. Un TAD es diferente a los tipos de datos fundamentales o básicos (int, char, double, etc,)

Propiedades Objetos Clases Métodos Mensajes Herencia Encapsulacion Polimorfismo Conceptos

TRABAJANDO CON OBJETOS P O O Programación Convencional programa Procedimientos Datos Componente Componente Componente Datos Parámetros Procedimientos Procedimientos Objetos Datos Funciones Datos y procedimientos. Se tratan separadamente

Un objeto es una unidad que contiene datos y las funciones que operan sobre ellos. Un objeto es cualquier entidad del mundo real. Un objeto es un tipo abstracto de datos. Ejemplos de objetos: Objetos físicos: automóviles en una simulación de trafico, aviones en un sistemas de control aéreo, componentes electrónicos, animales mamíferos. Elementos de interfases gráficos de usuario: Ventanas, iconos, menús, objetos gráficos, ratones, teclados. Estructura de datos: Array, pilas, colas, árboles binarios. Tipos de datos definidos por el usuario

Los objetos soportan características específicas. Se agrupan en tipos denominados clases Contienen datos internos que definen su estado actual Soportan ocultación de datos Pueden heredar propiedades de otros objetos Pueden comunicarse con otros objetos enviando o pasando mensajes Tienen métodos que definen su comportamiento

Unidad que contiene datos y las funciones que operan sobre esos datos. DEFINICION DE OBJETOS Unidad que contiene datos y las funciones que operan sobre esos datos. Instancia de una clase Objeto (nombre) Computador Elemento (miembro) Miembros dato Marca: Acer Campos miembro RAM: 512 Mb Funciones Miembro o Miembros función o método Imprimir Transmitir información

Los datos y funciones se encapsulan en una única entidad. Los datos están ocultos y solo mediante las funciones miembro es posible acceder a ellos. Los objetos de un programa se comunican entre si mediante el paso o envío de mensajes (acciones que debe ejecutar un objeto). La encapsulacion y ocultación de datos son utilizados en los objetos. Un campo miembro se representa por un rectángulo y una función por un hexágono Los datos y las funciones están ocultas es decir encapsuladas Los campos o funciones que se extienden fuera del cuadro son accesibles, desde el exterior y actúan de interfaz

CLASES Los objetos son miembros de clases, son instancias. Una clase es un tipo definido por el usuario que determina las estructuras de datos y las operaciones asociadas con este tipo. Las clases son como plantillas o modelos que describen como se construyen ciertos tipos de objetos. Clases es una colección de objetos similares, pueden tener muchas instancias y cada una es un objeto independiente. Es un modelo que se utiliza para escribir uno o mas objetos del mismo tipo. EJEMPLO: Clase de ventana Miembros de datos: pos x, posy, tipo - ventana, tipo - borde, color - ventana. Funciones miembro: mover – horizontal, Mover – vertical. Un objeto de la clase ventana es una ventana específica. datos x, y; desplegable; línea doble, amarilla.

Mensajes: activación de objetos. El envío de un mensaje a una instancia de una clase produce la ejecución de un método Mensajes: activación de objetos. Un mensaje es una petición de un objeto a otro objeto para que este se comporte de una determinada manera, ejecutando uno de sus métodos. La técnica de enviar mensajes se conoce como paso de mensajes. Un mensaje consta de tres partes: la identidad del objeto receptor, el método (función miembro) del receptor cuya ejecución se ha solicitado y cualquier otra información adicional que el receptor necesite para ejecutar el método requerido. (Información dada en forma de parámetros).

“Terminal 1 imprimir hola mundo” Receptor método parámetros. Sintaxis “Terminal 1 imprimir hola mundo” Receptor método parámetros. Nombre_del_ objeto. Función_ miembro o método(parametros). Computador Nombre Obtiene el nombre del alumno Curso mensaje Leer nombre Visualiza el nombre alumno.imprimir() Imprimir Sin parametros

Enviar el mensaje imprimir al objeto alumno. El objeto alumno reacciona al mensaje ejecutando la función miembro imprimir. El mensaje podría llevar unos parámetros. Alumno. Leer nombre (“Luis Alfredo”) Sin los mensajes los objetos no se podrán comunicar con otros objetos. El paso de mensajes es sinónimo de llamada a una función.

PROGRAMA ORIENTADA A OBJETOS Un POO es una colección de clases. Un POO necesita de una función principal que cree objetos y comience la ejecución con la invocación de sus funciones miembro. En una aplicación se requieren archivos diferentes. En un archivo se especifican las clases. La función principal en un archivo diferente. El compilador ensambla los archivos independientes en una unidad. Cuando se ejecuta un programa orientado a objetos ocurren tres acciones: Se crean objetos cuando se necesiten Los mensajes se envían desde unos objetos y se reciben en otros. Se borran objetos cuando ya no son necesarios y se recupera la memoria ocupada por ellos.

Es una característica de las clases. Herencia Es una característica de las clases. Permite a los objetos construirse a partir de otros objetos. Ej: las clases se dividen en subclases. Animales Mamiferos Insectos Anfibios Pajaros

Cada sub clase comparte características de la clase que deriva. Vehiculo Automóvil Camión Autobús Motocicleta Características comunes (motor, ruedas) Tienen sus propias características

CLASE BASE Característica A Característica B Característica A Característica B Característica C Característica A Característica B Característica D Característica E Característica A Característica B Característica F CLASES DERIVADAS

La herencia permite definir nuevas clases a partir de clases ya existentes. La herencia impone una relación jerárquica entre clases en el cual una clase hija hereda de su clase padre. Si una clase solo puede recibir características de otra clase base, la herencia se denomina herencia simple. Si una clase recibe propiedades de más de una clase base, la herencia se denomina herencia múltiple.

Calcular superficie base Figura Geométrica Calcular superficie Proporciona el valor cero Calcular superficie se recibe de la clase base por herencia Circulo Calcular radio (r) Rectángulo Calcular superficie Lados x,y Triangulo Calcular superficie base y altura

POLIMORFISMO Se refiere a que una misma operación puede tener diferente comportamiento en diferentes objetos o diferentes objetos reaccionan al mismo mensaje de modo diferente. Ejemplo: la operación sumar, puede sumar en un objeto dos números X + y (enteros, flotantes), pero también puede sumar dos cadenas concatenación. Ejemplo: un numero de figuras geométricas responden todas al mensaje dibujar de modo diferente ya que son figuras diferentes. REUTILIZACION Una vez que la clase se ha escrito, creada , depurada se puede difundir entre otros programadores para que la puedan utilizar en otros programas. En POO la herencia incorpora el concepto de reutilización, los objetos en POO son fácilmente reutilizables y es una razón para utilizar esta metodología.

CONCEPTO DE UNA CLASE Una clase es un tipo de dato que contiene una o mas elementos dato llamado miembros dato, y cero, una o mas funciones que manipulan esos datos (llamados miembro función o funciones miembro) Una clase se puede definir con una estructrura (struct), una union (union) o una clase (class). Sintaxis: Class nombre_clase { Miembro 1; Miembro 2; Miembro 3; ………….. Función _Miembro_1 ( ); Función _ Miembro_2 ( ); };

Los objetos o sustancias de una clase se definen así: Nombre_clase instancia_1; // instancia_1 es una instancia de la clase tipo nombre_clase. Un puntero o referencia a un objeto proporciona medios indirectos para acceder a un objeto, no son instancias de una clase. Una clase es sintacticamente igual a una estructura, con la única diferencia de que en el tipo class todos los miembros son por defecto privados mientras que en el tipo struct son por defecto públicos. Existen 3 formas de declarar objetos: Primer forma Class cliente { Char nombre [40]; Char num; }; cliente comprador; // comprador es un objeto // una variable de la clase // y una instancia de la clase cliente

Segunda forma class cliente { Char nombre [40]; Char num; }comprador; Tercer forma }; Main() cliente comprador; return 0; }

Componentes de una clase Una definición de una clase consta de dos partes: Una declaración: lista de miembros de la clase Una implementación: define las funciones de la clase Declaración de la clase class contador { long cuenta; Public: void leervalor(long); long obtenervalor(long); };

Implementación de una clase void contador::leervalor(long valor) { cuenta=valor; } long contador::obtenervalor() return cuenta;

Diseñar un programa que convierta dólares a pesos TALLER Diseñar un programa que determine el valor total de la compra sabiendo el valor unitario, una cantidad y un iva(16%). La clase debe llamarse compra. Diseñar un programa que convierta dólares a pesos Diseñar un programa que realice la conversión de grados Celsius a Farenheit F= 9/5 C +32 Diseñar un programa para convertir metros a pies y pulgadas. 1 M=39.27 pulgadas; 1 pie= 12 pulgadas

ESTRUCTURA WHILE

ESTRUCTURA SWITCH

ESTRUCTURA SWITCH - 2 Ejercicio

FUNCIONES MIEMBRO Las funciones miembro son miembros de una clase y son las funciones diseñadas para implementar las operaciones permitidas, sobre los tipos de datos de una clase. Las funciones miembro de una clase pueden ser de diferentes tipos: Funciones Miembro Simples Funciones Miembro Estáticas Funciones Miembro const. Funciones Miembro volatile Funciones Miembro en Línea (in line) Funciones Miembro const this Funciones Miembro volatile this Funciones Virtuales Funciones Especiales: Constructor y Destructor. Funciones Operador Funciones Amigas

CONSTRUCTOR Un constructor es una función especial que sirve para construir o inicializar objetos. Con un constructor se inicializan automáticamente los objetos. En c++ la inicialización de objetos no se puede realizar en el momento en que son declarados, sin embargo tiene una característica muy importante y es disponer de una función llamada constructor que permite inicializar objetos en el momento en que se crean. Un constructor es una función que sirve para construir un nuevo objeto y asignar valores a sus miembros dato, se caracteriza por: Tener el mismo nombre de la clase que inicializa Puede definirse in line o fuera de la clase No devuelve valores Puede admitir parámetros como cualquier otra función Puede existir mas de un constructor, e incluso no existir.

Los constructores pueden implicar tres escenarios: Crear objetos con inicialización por defecto Crear objetos con inicialización especifica Crear objetos por copia de otros objetos Llamando a Constructores C++ llama siempre a las funciones constructores cuando se define el objeto. El modo en que se define las instancias de la clase controlan el constructor que se llama. El constructor sin argumentos se llama cuando se define una instancia pero no se especifica ningún valor inicial.

Constructores por Defecto (dentro de la clase) El constructor por defecto es un constructor que no acepta argumentos. Dado que no toma argumentos, se deduce que cada clase solo tiene un constructor por defecto.

EJERCICIO Digitar el código del siguiente ejercicio y explicar en que consiste