Introducción a la programación orientada a objetos



Documentos relacionados
Introducción al tipo de dato ARRAY

TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras CONTENIDOS

PROGRAMACIÓN ORIENTADA A OBJETOS

Clases y Objetos. Informática II Ingeniería Electrónica

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

Java Inicial (20 horas)

Programación Orientada a Objetos con Java

Clases y funciones amigas: friend

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Capítulo 6. Introducción a la POO

9. Objetos y clases Clases

Modulo 1 El lenguaje Java

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

8. Sentencia return y métodos

Contenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE

Capítulo 9. Archivos de sintaxis

Curso de Java POO: Programación orientada a objetos

Introducción a la Programación Orientada a Objetos

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

CONTENIDOS. 1. Completar el ejemplo de Herencia: Superclase Persona-Subclase Alumno

Curso de Python Inicial

PART II: Moviendo al jugador

MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA. Perfil Entidad Proveedora

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

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso Cuatrimestre de otoño. 17 de Enero de 2011

Notación UML para modelado Orientado a Objetos

Combinar comentarios y cambios de varios documentos en un documento

Contenidos. Funciones (suplemento) Funciones. Justificación del uso de Funciones

Plantillas de clases ( Templates )

Tema 6. Reutilización de código. Programación Programación - Tema 6: Reutilización de código

Introducción a la Firma Electrónica en MIDAS

Tema 4. Clases y objetos en C Introducción

Benemérita Universidad Autónoma del Estado de Puebla

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

2.1. Introducción al lenguaje Java

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA

Prof. Dr. Paul Bustamante

Procesadores de lenguaje Tema 5 Comprobación de tipos

Constructores y Destructores

Memoria compartida y semáforos r/w. La página del manual que podría servir para describir estas funciones es la siguiente:

Práctica 2 Gráficos Vectoriales con SVG (versión )

Diseño orientado a los objetos

Programación orientada a objetos

A25. Informática aplicada a la gestión Curso 2005/2006 Excel Tema 7. Funciones avanzadas de Excel II

Prof. Dr. Paul Bustamante

Internet como herramientas de comunicación: El correo electrónico

Herencia. 3.- Herencia. Declaración de una clase derivada en Delphi. Jerarquía de clases

Prof. Dr. Paul Bustamante

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

Escritorio remoto y VPN. Cómo conectarse desde Windows 7

Técnicas de Desarrollo de Programas Ingeniería Informática Curso 2008 / Ejercicios de Patrones de Diseño:

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

El control de la tesorería consiste en gestionar desde la aplicación los cobros y pagos generados a partir de las facturas de venta y de compra.

19. Packages o paquetes

2.2.- Paradigmas de la POO

Índice ÍNDICE EJERCICIO 1: CÁLCULO FINANCIERO (5 PTOS.) EJERCICIO 2: AGENCIA DE COLOCACIONES (5 PTOS.)...4

MICQ. Trabajo Práctico Final Seminario de Ingeniería en Informática I Facultad de Ingeniería, UBA. Junio Cátedra: Pablo Cosso

15. Parámetros o argumentos

Programación Orientada Objetos. Problemas, soluciones y Programas

Capitulo 5. Implementación del sistema MDM

PowerPoint 2010 Hipervínculos y configuración de acciones

Comerciales. Comisiones en Documentos de Venta WhitePaper Enero de 2008

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario

Computación III. Objetivo de aprendizaje del tema

Práctica GESTIÓN Y UTILIZACIÓN DE REDES LOCALES. Curso 2001/2002. TCP/IP: protocolo TCP

Una vez que tengamos el padrón de un determinado tributo con todos sus datos actualizados, podemos generar los recibos de ese padrón.

ALGORITMICA Y PROGRAMACION POR OBJETOS I

Herramienta Encuestas. MiAulario

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

Cómo creo las bandejas del Registro de Entrada /Salida y de Gestión de Expedientes?

INDICE. 1. Introducción El panel Entities view El panel grafico Barra de botones Botones de Behavior...

Centro de Capacitación en Informática

Clases y objetos. Objeto Instancia de una clase: Unidad atómica que encapsula estado y comportamiento.

Manual de ayuda para crear y gestionar Tareas, como actividad evaluable

Examen escrito de Programación 1

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

Presentaciones. Con el estudio de esta Unidad pretendemos alcanzar los siguientes objetivos:

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1

Programación Avanzada SOLUCIÓN EXAMEN FEBRERO 2011

TEMA 7: DIAGRAMAS EN UML

Manual de usuario Noticias y Accesos Directos en Facultades ÍNDICE

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin.

Prototipo de un sistema. interactivo de soporte y ayuda a los compradores de un centro. comercial de equipamiento del hogar

Clases abstractas e interfaces

Elementos requeridos para crearlos (ejemplo: el compilador)

Intermediación ORDENES ENLAZADAS. Características y Propiedades

Programación Orientada a Objetos en Java

TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 2 CADENAS O VECTORES DE CARACTERES 6 3 PASO DE CADENAS Y ARRAYS A FUNCIONES 8

Guía N 1: Fundamentos básicos(i)

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema

CAPÍTULO 3 Servidor de Modelo de Usuario

JavaScript como Orientación a Objetos

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

1. Introducción. 1.1 Ejercicio 1: Estación Meteorológica (4.0 pts.) Ejercicio 2: Gestión Académica: Alumnos (5.0 pts.)...

HOOTSUITE: GESTOR DE CUENTAS EN REDES SOCIALES

Región de Murcia Consejería de Educación, Ciencia e Investigación. Manual Usuario FCT

28.- Manejo de los Feriados

Práctica 2: Simón dice

Transcripción:

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 1 Introducción 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 array de enteros, podemos recorrerlo, buscar un elemento, etc.. Si tenemos una pantalla, podemos escribir en ella, borrar, etc.. 2

Programación orientada a objetos 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. Clase : Los datos y las operaciones comunes a un conjunto de objetos forman un conjunto que se conoce como clase. 3 Las clases Las clases C++ permiten definir nuevos tipos de datos, Cada clase es un nuevo tipo, Cada elemento de la clase se caracteriza por ciertos valores y las operaciones disponibles para crear dichos elementos, modificarlos y destruirlos. Podemos establecer un paralelismo entre los tipos de datos vistos hasta el momento (int, char, arrays, estructuras, ) y las clases: 1. Ambos son tipos El tipo int está definido por el lenguaje y las operaciones que pueden realizarse están completamente determinadas. Una clase CL no está definida por el lenguaje, por lo que debe ser definida por el programador. Esta definición debe contener dos cosas: datos y operaciones. Metodología y Técnicas de Programación I 2003/2004 4

Las clases 2. Pueden declararse elementos de ese tipo Podemos declararnos elementos de tipo int, es lo que llamamos variables. Podemos declararnos elementos de la clase CL, en éste caso los llamaremos objetos o instancias de la clase CL. Esto implica que podemos tener muchos objetos de una misma clase, igual que podíamos definir muchas variables de un tipo. Pero una clase no es tan simple como un tipo de datos Una clase es un conjunto de datos y un conjunto de operaciones, que como hemos dicho, deben ir unidas. Miembros Datos Operaciones Atributos Métodos 5 El tipo Struct Hemos visto anteriormente cómo implementar un tipo de dato Cliente por medio de una estructura, y unas operaciones para manejarla: struct cliente char nombre[30]; char calle[30]; double importe_factura; char tlf[20] ; int edad; Miembros No existe una relación explícita entre las funciones y los datos con los que se trabaja cliente c; void visualizar_datos_cliente ( cliente c ); void modificar_edad ( cliente & c ); void hacer_descuento ( cliente & c, double 0,5 ); En C++ podemos asociar las operaciones con los datos simplemente incluyendo las funciones dentro de la definición de la estructura 6

El tipo Struct PÚBLICO struct cliente char nombre[30]; char calle[30]; double importe_factura; char tlf[20] ; int edad; void visualizar_datos_cliente ( ); void modificar_edad ( ); void hacer_descuento (double); En C++ podemos asociar las operaciones con los datos simplemente incluyendo las funciones dentro de la definición de la estructura Las funciones declaradas de esta forma se llaman métodos o funciones miembro. cliente c; Para ejecutar éstos métodos, se ha de utilizar una variable de esa estructura con el operador punto. ( acceso habitual a miembros) c.edad = 23 ; c.visualizar_datos( ); c.hacer_descuento(0.5); 7 Clases y miembros La estructura anterior proporciona un conjunto de operaciones adecuadas sobre el tipo Cliente, pero no se especifica que esas funciones deban ser las únicas que accedan a los datos del tipo. Un tipo struct no evita que se acceda al dato edad y se actualice a 200. Para que los MIEMBROS, sean privados, utilizamos la palabra class en lugar de struct. PRIVADO class Cliente char nombre[30]; char calle[30]; double importe_factura; char telefono[20] ; int edad; void visualizar_datos_cliente ( ); void modificar_edad ( ); void hacer_descuento (double); cliente c; 8

Clases y miembros class Cliente char nombre[30]; char calle[30]; double importe_factura; char telefono[20] ; int edad; void visualizar_datos_cliente ( ); void modificar_edad ( ); void hacer_descuento (double ); cliente c; Especificador de acceso El identificador public separa la clase en dos partes: parte privada: donde hemos declarado los datos de la clase. parte pública: donde declaramos las funciones de la clase. Solo podemos acceder a los miembros privados a través de las funciones públicas. 9 Diferencias entre class y struct En una clase class, los miembros son privados por defecto, mientras que en una estructura struct, los miembros son públicos por defecto. class Cliente char nombre[30]; char calle[30]; double importe_factura; char telefono[20] ; int edad; void visualizar_datos_cliente ( ); void modificar_edad ( ); void hacer_descuento ( double ); Con ésta definición del tipo Cliente, se puede acceder a la parte pública, pero no a la privada. void main() cliente c; c.visualizar_datos_cliente( ) ; c.edad = 8 ;... Error de compilación. 10

Pilares de la programación orientada a objetos Ocultación de la información Solo se puede acceder a los datos por medio de las funciones públicas. Los datos están ocultos y eso asegura que no se puedan modificar por funciones externas al objeto. Encapsulamiento de la información Encapsulación de código y datos. 11 Ejemplo: y class Circulo private : float coor_x; float coor_y; float radio; public : void inicializar ( float a, float b, float r) coor_x = a; coor_y = b; radio = r; float visualizar_radio ( ) return radio; float calcular_area ( ) ; La clase círculo tiene 6 miembros: - 3 atributos privados - 3 métodos o funciones miembro Los métodos pueden implementarse dentro de la clase: se llaman funciones insertadas También se puede implementar los métodos fuera de la clase x 12

Características fundamentales de las clases en C++ Nombre de la clase. Sirve para identificar a todos los objetos que tengan unas determinadas características. Conjunto de atributos. Datos miembro. El valor de los atributos representan el estado de cada objeto. Conjunto de métodos. Funciones miembro. Permite que los objetos cambien de estado, dependiendo del estado anterior que tuviera el objeto. Niveles de acceso para proteger ciertos miembros de la clase. Normalmente, se definirán como ocultos (privados) los atributos y visibles (públicos) los métodos. 13 Representaciones gráficas Para representar gráficamente las clases y objetos, vamos a utilizar diagramas similares a los de UML (Lenguaje de Modelado Unificado). Nombre Atributos Métodos Público (interfaz) Nombre de la clase Atributos definidos en la clase Métodos definidos en la clase Ejemplo: Circulo coor_x coor_y radio Métodos: Si la función devuelve un valor, el tipo se pone al final precedido de : inicializar( float, float, float) visualizar_radio( ) : float calcular_area( ) : float Metodología y Técnicas de Programación I 2003/2004 14

Construcción de una clase La definición de una clase es sintácticamente similar a una estructura (struct). class <nombre_de_la clase> private: <lista miembros privados (atributos y métodos)> <lista miembros públicos (atributos y métodos)> class <nombre_de_la clase> <cuerpo de la clase> Especificadores de acceso 15 Ejemplo Vamos a modelar una clase cuyos objetos sean las cuentas de un banco. Cuenta numero_cuenta saldo interes_anual inicializar(long) dar_saldo () : float ingresar ( float) visualizar_datos() La clase se llama Cuenta. Qué información ha de contener los objetos de la clase? Es decir, cada una de las cuentas. Qué operaciones se van a necesitar para gestionar las cuentas? 16

Ejemplo Cuenta numero_cuenta saldo interes_anual inicializar(long) dar_saldo () : float ingresar ( float) class Cuenta private: long int numero_cuenta; float saldo; float interes_anual;... Interfaz Los métodos o funciones miembro, se declaran dentro de la clase. La implementación de dichos métodos, puede hacerse dentro (funciones insertadas) o fuera. 17 Atributos (datos miembro) Los atributos describen el estado de un objeto. Un atributo consta de dos partes: nombre del atributo y valor Los atributos de una clase pueden ser: - de cualquier tipo básico (int, float, bool, ) - de tipo compuesto (estructura ) - un puntero - un array - objetos de otra clase class Cuenta private: long int numero_cuenta; float saldo; float interes_anual;.. Metodología y Técnicas de Programación I 2003/2004 18

Ejemplo Cuenta numero_cuenta saldo interes_anual inicializar(long) dar_saldo () : float ingresar ( float) Implementación de los métodos fuera de la clase class Cuenta private: long int numero_cuenta; float saldo; float interes_anual; void inicializar(long int num) numero_cuenta = num; saldo = 0; interes_anual = 0; float dar_saldo (); void ingresar( float); Función insertada, no acaba en ; Prototipos 19 Métodos definidos interna y externamente Los métodos se definen de la misma forma que las funciones normales. Lo normal es que dentro del cuerpo de la clase, solo aparezcan los prototipos, y la implementación de las funciones fuera. Así los detalles de la implementación permanecen ocultos y la interfaz queda mucho más clara. class Cuenta private: long int numero_cuenta; float saldo; float interes_anual; void inicializar(long int num); float dar_saldo (); void ingresar(float);... void Cuenta :: ingresar (float s) saldo = saldo + s ; float Cuenta :: dar_saldo () return saldo ; 20

Implementación de los métodos fuera de la clase Esta es la opción más correcta. La implementación del método ingresar sería el siguiente: Nombre de la clase a la que pertenece la función Operador de resolución de ámbito ( :: ) void Cuenta :: ingresar (float s) saldo = saldo + s ; Nombre del método Se pone el nombre de la clase delante del nombre del método, porque podemos tener varias clases con el mismo método. 21 Implementación de los métodos fuera de la clase La implementación del método dar_saldo sería el siguiente: Nombre de la clase Operador de resolución de ámbito ( :: ) float Cuenta :: dar_saldo () return saldo ; Acceso al atributo Dato privado En el código de los métodos se puede usar todo lo que está declarado en la clase: lo público y lo privado. 22

Creación de elementos de una clase: creación de objetos La clase ya está terminada (declarada e implementada). Ya podemos crear objetos y trabajar con ellos. La sintaxis es igual que para declarar variables de un cierto tipo. class Circulo private : float coor_x; float coor_y; float radio; public : void inicializar ( ); float visualizar_radio ( ); float calcular_area ( ) ; <tipo_de_dato> <nombre_de_variable> ; <Nombre de la clase> <nombre_del_objeto> ; Circulo c1, c2, c3; Objetos de la clase Círculo 23 Uso y manipulación de objetos: paso de mensajes Una vez creados los objetos, podemos trabajar con ellos. Si queremos que un determinado objeto ejecute un método, utilizamos el operador punto ( ). A esto se le conoce como paso de mensajes. Los objetos se manipulan mediante el paso de mensajes. Cada paso de mensaje provoca la ejecución del correspondiente método definido en la clase del objeto receptor. Cada objeto entiende tantos mensajes como métodos estén definidos en su clase. void Circulo:: inicializar ( float a, float b, float r) coor_x = a; coor_y = b; radio = r; Los objetos c1, c2 tienen valores diferentes, tienen distinto estado. Se pasa el mensaje inicializar al objeto c1 Circulo c1, c2, c3; c1.inicializar (1, 2, 4); c2.inicializar (0,0,5); 24

Público y privado Los atributos deben ser privados. Los métodos o funciones miembro deben ser públicas. A través del objeto de una clase sólo se puede acceder a lo que está declarado como público en la clase (con el operador ). Lo privado solo puede ser accedido desde el código de los métodos. class Circulo private : float coor_x; float coor_y; float radio; public :. Circulo c1, c2, c3; c1.coor_x = 4; c1.radio = 7 ; Error Los atributos coor_x y radio son privados 25 Resumen: Las instancias de un tipo cualquiera se denominan variables, mientras que las instancias de una clase se denominan objetos. Los atributos describen el estado de un objeto. Un atributo consta de dos partes: nombre del atributo y valor. Los métodos describen el comportamiento de los objetos de una clase. Representan las operaciones que se pueden realizar con los objetos de la clase. La ejecución de un método puede conducir a cambiar el estado del objeto. Los objetos se manipulan mediante el paso de mensajes. Para ejecutar un método asociado a un objeto, se realiza una acción que se conoce como envío de mensajes. Las operaciones y valores visibles desde el exterior de la clase, es lo que se denomina Interfaz de la clase. 26