OOP y C++ Indice. 0.1 Análisis orientado a objetos(1/4) Análisis orientado a objetos(2/4) 0.- OOP 1.- INTRODUCCIÓN.

Documentos relacionados
Academia de computación de IE, ICA e ISISA. Unidad didáctica Programación Orientada a Objetos

Contenido. Prefacio Orígenes de la programación orientada a objetos... 1

Clases y Objetos en C++

Francisco Javier Peña Escobar Universidad del Valle

Objetos y memoria dinámica

Programación orientada a objetos I

Introducción a OOP. Programación Orientada a Objeto

Programación Orientada a Objetos en C++

APUNTES PROII 2º PARCIAL.

Introducción al Lenguaje "C++"

Curso de PHP. Pascual Gómez del Pino Página 1

INDICE 1. Introducción a Turbo C++ 2. Utilización de C++

Conceptos Básicos. I. López

UAA-DSE Programación 2 / C++ Eduardo Serna-Pérez

INTRODUCCIÓN A LA POO EN C++

Programación orientada a objetos. Resumen de Temas Unidad 5: Herencia

ÍNDICE TEMÁTICO. área de buffer, 78 arreglo, 23 arreglos, 50 arreglos multidimensionales, 53 atributos, 93, 101

PROGRAMACION ORIENTADA A OBJETOS EN C++

Introducción a la Programación orientada a objetos con C++

Programación C++ (1 Parte) Dr. Oldemar Rodríguez Rojas Escuela De Informática Universidad Nacional

Derechos de Acceso: COMPOSICION

1. Sobrecarga de operadores. 2. Métodos operadores unarios Operador de incremento (prefijo)

Programación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++

Qué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.

Universidad Nacional del Santa E.A.P. Sistemas e Informática Microcomputación III

Tema 2: Clase y objetos en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

CURSO DE LENGUAJE C. 4.1 Conceptos básicos de funciones 4.2 Funciones que regresan valores no enteros 4.3 Variables externas 4.4 Reglas de alcance

Herencia y polimorfismo

! Fundamentos de la POO. ! Comportamiento y estado. ! Clases y objetos en Java

C++ me gusta++ Dr. Arno Formella. formella Universidad de Vigo Departamento de Informática E Ourense

Lenguaje de Programación

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

HOJA DE EJERCICIOS 3 HERENCIA ENTRE CLASES Y POLIMORFISMO DE MÉTODOS

PROGRAMACIÓN EN JAVA

Formatos para prácticas de laboratorio

Los Constructores(1)

Tema: Funciones Virtuales y Polimorfismo.

Tema: Funciones Virtuales y Polimorfismo.

Planificaciones Algoritmos y Programación I. Docente responsable: CARDOZO MARTIN MIGUEL. 1 de 8

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA con BlueJ

Programación I. Carrera: IFM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

Sobrecarga de Operadores II

Programación Orientada a Objetos (POO)

Tema: Sobrecarga de Operadores Unarios. Sobrecarga de Funciones.

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

Universidad Salesiana de Bolivia

TEMA 3:Programación con Clases y Objetos.

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Aprender la programación orientada a objetos con el lenguaje C#

Descripción y Contenido del Curso. Programación C++ Capacity Academy.

Clases y herencia. FJP Unidad 8. Diseño de clases

3. LA HERENCIA. Necesidad de la herencia

Manejo de Punteros y objetos en memoria dinámica en C++ Agustín J. González ELO 329

Guía del Curso IFCD052PO PROGRAMACIÓN EN JAVA

Las clases están compuestas por un conjunto de miembros. (datos y funciones) también se conocen como (atributos y métodos)

Tres elementos esenciales de la programación orientada a objetos

Sobre Carga de Operadores

Encapsulamiento, polimorfismo, abstracción y herencia

Tema: Plantillas en C++.

UNIVERSIDAD AUTONOMA DE QUERETARO Facultad de Informática

Creación de clases en C++ (I)

Construcciones del Lenguaje Java

1. VISIÓN GENERAL. Horas presenciales. Total horas

Tema VII POO y lenguajes de programación no Orientados a Objetos (R-1.1)

Sebastián García Galán

Implementación de las Clases Pila, Cola, Lista y Arbol

Programación Orientada a Objetos

Introducción a C++ Índice

Diseño Basado en Componentes. Curso 2008 / 09

Programación con Java Básico

INTRODUCCIÓN A LA PROGRAMACIÓN

PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas

Herencia y Polimorfismo en C++

Polimorfismo. Métodos virtuales

Programación Orientada a Objetos

DEPARTAMENTO: Ingeniería e Investigaciones Tecnológicas

PNFSI. Asignatura: Desarrollo de Software. Tema 1: Programación Orientada a Objetos

Prueba N o 1. Programación II

LABORATORIO #1 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C++

Programación orientada a objetos II

Informática I para Bachillerato

Conceptos Básicos. Programación Orientada a Objetos 2

LA PALABRA CLAVE THIS EN JAVA. CONTENIDO NULL POR DEFECTO DE UN OBJETO. SOBRECARGA DE NOMBRES. EJEMPLOS (CU00654B)

Unidad Didáctica 5: Introducción a la Programación Orientada a Objetos

Unidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores.

10 -Herencia Y Polimorfismo. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Programación Orientada a Objetos

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

Guía práctica de estudio 04: Clases y objetos

Fundamentos de Programación

//La asignación de la propiedad Horas hace que el 'set' de acceso a ser llamado. t.hours = 24;

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Programación Orientada a Objetos. Resumen de Temas Unidad 3: Constructores y destructores

Temas. Taller III 2007 Gentile,Vazquez

Resultado de Aprendizaje:

Programación orientada a objetos

Tipo de Datos Abstractos y Programación Orientada a Objetos

Programación Orientada a Objetos en Java

Unidad II Fundamentos de C++ M.C. Juan Carlos Olivares Rojas

Transcripción:

OOP y C++ Un lenguaje para Programadores Carlos PLATERO Indice 0.- OOP 1.-. Objetivos, palabras clave, reglas prácticas, consejos 2.- CLASES Y OBJETOS. Extensión del concepto de estructura en C 3.- HERENCIA. Los objetos heredan propiedades de los padres 4.- OPERADORES 5.- EJEMPLOS 2/56 0.1 Análisis orientado a objetos(1/4) Estudio y especificación del problema a resolver Tipos de objetos Entidades externas: consumen información Cosas: parte del dominio del problema Ocurrencias o sucesos Papeles que juegan las personas Unidades organizativas Análisis orientado a objetos(2/4) Características de un objeto Información retenida: su información ha de ser recordada Servicios necesarios: debe tener atributos Múltiples atributos Atributos comunes Operaciones comunes Producen y consumen información 3/56 4/56 Modelo de Análisis orientado a objetos (3/4) Identificación de los objetos Identificación de estructuras Definición de temas Definición entre atributos e instancias Definición de conexiones entre operaciones y mensajes Modelo de Análisis orientado a objetos (4/4) Descripción del objeto 1. Nombre del objeto 2. Descripción de atributos 3. Entrada externa al objeto 4. Salida externa del objeto 5. Descripción de métodos 6. Conexiones de instancias 7. Conexiones de mensajes 5/56 6/56 1

0.2. Diseño orientado a objetos(1/2) Crea una representación del espacio del problema del mundo real y la hace corresponder con el ámbito de la solución, que es el SW Abstracción, ocultamiento y modularidad Objetos, métodos y mensajes: ocultación y modularidad Diseño orientado a objetos(2/2) Estrategia de diseño 1. Identificar las abstracciones de datos para cada subsistema 2. Identificar los atributos de cada abstracción 3. Identificar las operaciones de cada abstracción 4. Identificar las comunicaciones entre objetos 5. Probar el diseño con guiones 6. Aplicar herencia donde sea apropiado 7/56 8/56 0.3 Formas de escribir SW Luchar por un diseño estable Claridad en el reparto de tareas Utilizar herramientas con sentido común Utilizar menos programadores Combatir fiebre de prestaciones Emplear métodos formales Comenzar las pruebas cuando se escribe la primera línea de código 1.- Introducción. 1.1.- Objetivos. 1.2.- Palabras clave. 1.3.- Definiciones. 1.4.- Reglas prácticas. 1.5.- Bibliografía. 9/56 10/56 1.1.- Objetivo 1.2.- Palabras clave. COMPARATIVA C, C++. asm catch class delete CONCEPTO DE CLASE. CONCEPTO DE HERENCIA. friend inline new operator private protected public template this throw try virtual 11/56 12/56 2

1.3.- Definiciones.(1/2) Clase 1.3.- Definiciones.(2/2) Evolución de una estructura en C, contiene variables y funciones miembro que las manipulan. Funciones Miembro (Procedimientos y mensajes) Por defecto se declaran como privadas, negando a entidades exteriores el acceso a los datos. Objeto Clase cpersona -> Clase cpolítico Es la realización física de una clase Declaración, inicialización,utilización y destrucción 13/56 14/56 1.4.- Reglas prácticas. Algo como idea individual -> OBJETO Si dos clases tienen algo común-> C. BASE Declarar variables en el momento de usarlas Utilizar new delete en vez de malloc() free() Evitar el uso de macros Programa= objetos que interactúan. 1.5.- Bibliografia. Bjarne Stroustrup, C++, ADDISON- WESLEY/ DIAZ DE SANTOS Fco. Javier Ceballos, Programación orientada a objetos con C++,RA-MA Angel Franco, Desarrollo Avanzado de Aplicaciones Windows con Borland 4.0 y ObjectWindows 2.0. 15/56 16/56 INDICE 1.-. Objetivos, palabras clave, reglas prácticas, consejos 2.- CLASES Y OBJETOS. Extensión del concepto de estructura en C 3.- HERENCIA. Los objetos heredan propiedades de los padres 4.- OPERADORES 5.- EJEMPLOS 2.1 Declaración de una clase. 2.2 Definición de las funciones miembro. 2.3 Constructor 2.4 Declaración del objeto. 2.5 Llamadas a las funciones miembro. 2.6 Sobrecarga de constructores. 2.7 Destructor. 2.8 Control de acceso. 2.9 Matriz de objetos. 2.10 Referencia. 2.11 Constructor copia. 17/56 18/56 3

2.1.- Declaración de una clase. (ver ejemplo 1) 2.2.- Definición de las funciones miembro. 19/56 20/56 2.3.- Constructor 2.4.-Declaración del objeto. 21/56 22/56 2.6.- Sobrecarga de constructores. 2.5.- Llamada a las funciones miembro pt1.mostrar(); pt1.ocultar(); ppunto->mostrar(); ppunto->ocultar(); 23/56 24/56 4

2.7 Destructor. Solo puede haber uno. 2.8. Control de acceso(1/2). 25/56 26/56 2.8. Control de acceso(2/2). 2.9. Matriz de objetos(1/4). 27/56 28/56 2.9. Matriz de objetos(2/4). 2.9. Matriz de objetos(3/4). 29/56 30/56 5

2.9. Matriz de objetos(4/4). 2.10. Referencia (1/3). Es un nombre alternativo, alias o sinónimo para un objeto. int y=10; int &x=y; Una referencia no es una copia de la variable referenciada, sino que es la misma variable con otro nombre. 31/56 32/56 2.10. Referencia (2/3). 2.10. Referencia (3/3). Paso por valor Paso por referencia. 33/56 34/56 2.11. Constructor copia (1/2). 2.11. Constructor copia (2/2). Sirve para crear un objeto a partir de otro ya existente. Acepta como argumento una referencia a su propia clase. C++ proporciona uno si no se define explícitamente. 35/56 36/56 6

INDICE 1.-. Objetivos, palabras clave, reglas prácticas, consejos 2.- CLASES Y OBJETOS. Extensión del concepto de estructura en C 3.- HERENCIA. Los objetos heredan propiedades de los padres 4.- OPERADORES 5.- EJEMPLOS 3.1.- Clase Base. 3.2.- Clase Derivada. 3.3.- Control de Acceso. 3.4.- Constructor y Destructor. 3.5.- Redefinición de funciones miembro. 3.6.- Definición de nuevas funciones. 3.7.- Llamadas a funciones miembro. 3.8.- Polimorfismo. 3.9.- Herencia Multiple. 37/56 38/56 3.1.- Clase base. (ver ejemplo2) Punto clase base PuntoMejorado clase derivada 39/56 40/56 3.2.- Clase derivada. 3.3.- Control de acceso. Clase Base funciones miembro -> protected, private, public objetos -> public Clase Derivada funciones miembro -> protected, public clase base. protected, public, private si misma. objetos -> public clase base public si misma. 41/56 42/56 7

3.4.-Constructor y destructor. 3.5.- Redefinición de funciones miembro. 43/56 44/56 3.6.- Definición de nuevas funciones. 3.7.-Llamadas a funciones miembro. 45/56 46/56 3.8.- Polimorfismo. (ver ejemplo 3) Figura 3.8.- Polimorfismo (2/2). Se añade el concepto clase abstracta o virtual. Es la clase base de varias clases hijas comunes. E lipse Circulo Rectángulo Cuadrado No se pueden crear objetos de clases abstractas. Si se pueden crear punteros y referencias. Se añade el concepto funciones virtuales. Son aquellas que tendran distintas versiones. 47/56 48/56 8

3.9.- Herencia múltiple. INDICE Circulo Figura Rectangulo 1.-. Objetivos, palabras clave, reglas prácticas, consejos 2.- CLASES Y OBJETOS. Extensión del concepto de estructura en C 3.- HERENCIA. Los objetos heredan propiedades de los padres 4.- OPERADORES RectRedondo 5.- EJEMPLOS 49/56 50/56 4.1.- Introducción. 4.2.- Sobrecarga de operadores binarios. 4.2.1.- El operador suma (+). 4.2.2.- El operador producto (*). 4.2.3.- El operador asignación (=). 4.3.-Operadores como función friend. 4.4.- La clase string. 4.1.- Introducción (1/2). Se permite introducir operaciones con objetos. Redefinición de operadores unarios Redefinición de operadores binarios. Palabras clave: operator, friend 51/56 52/56 4.1.- Introducción (2/2). OPERADORES A REDEFINIR (40). (ver ejemplo 4) 4.2.- Sobrecarga de operadores binarios. Un operador binario @ aplicado a dos objetos X e Y, se simboliza X @ Y es equivalente a las llamadas siguientes: X.operator@(Y); // usando operator como función miembro operator@(x,y); // usando operator como función friend 53/56 54/56 9

4.2.1.- El operador suma (+). 4.2.2.- El operador producto (*). 55/56 56/56 4.2.3.- El operador asignación (=). 4.3.-Operadores como función friend (1/3) Una función friend (amiga) de una clase comparte los datos miembro públicos y privados de la clase, pero no es miembro de la clase. La función friend no pertenece a la clase, por tanto no tiene la relacción de pertenencia :: La función debe recibir todos los argumentos, ya que no contiene el puntero this. 57/56 58/56 4.3.-Operadores como función friend (2/3) 4.3.-Operadores como función friend (3/3) 59/56 60/56 10

4.4.- La clase string (1/2). (ver ejemplo 5) 4.4.- La clase string (1/2). Operaciones. 1.- Sumar objetos string 2.- Sumar un objeto string y una cadena de caracteres. 3.- Sumar un objeto string y una cadena char* 4.- Extraer pedazos de un objeto string y asignarlo a otro objeto string. -función miembro substr() 5.- Convertir un objeto string a cadena de caracteres -función miembro c_str() 61/56 62/56 PODEIS DESPERTAR! ZZZ... 63/56 11