Informática II Prof. Dr. Gustavo Patiño MJ 16- 18 24-09-2013.

Slides:



Advertisements
Presentaciones similares
Unidad 3 Lenguajes .Net y POO
Advertisements

Curso de java básico (scjp)
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Programación Gráfica 8. Clases y objetos.
Curso de Java Capitulo 7: Continuación Poo Profesor:
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
Definición de Clases y Variables de referencia.
Creación y destrucción de objetos
Lenguaje de programación Java
funciones Por: Carlos Alberto García Acosta
Arquitectura CLARO-TECNOTREE
REFERENCIA AL OBJETO DE LA CLASE BASE
POO en C++: Sintaxis En el .h debe aparecer la declaración de la clase: class NombreClase { private: // atributos y métodos privados public: // atributos.
Informática II Prof. Dr. Gustavo Patiño MJ
Informática II Prof. Dr. Gustavo Patiño MJ
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
Aplicación del paradigma orientado a objetos
Diseño y programación de
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
PROGRAMACION ORIENTADA A OBJETOS
Informática II Prof. Dr. Gustavo Patiño MJ
Programación por capas: Capa de Clases
Programación Orientada a Objetos en Java
Algoritmos y Estructuras de Datos Introducción al C++ Herencia.
DIAGRAMA DE CLASE.
Herramientas para el acceso directo a memoria en C++
HERENCIA.
La estructura básica de los programas en java, algo a tener en cuenta y que debemos recordar siempre es el archivo debe llevar el nombre de la clase con.
Programación Orientada a Objetos usando C++
Modificadores.
POO Java Módulo 3 Elementos de programas Identificadores
Estructura de Datos En C++
Introducción a Java II.
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,
Abstracción de los datos y Orientación a Objeto Clase 13.
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.
Tema 6: Clases Antonio J. Sierra.
Álgebra elemental.
Direcciones físicas y direcciones virtuales (lógicas)
EXPONENTES Y RADICALES
SCJP Sun Certified Programmer for Java 6
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.

Capitulo # 4 herencia PROGRAMACION III UNIVERSIDAD
Clase 10: Estructuras de datos y arreglos.
Informática Ingeniería en Electrónica y Automática Industrial
UNIDAD VI Recursos esenciales de Java LSC. Natalia Rodríguez Castellón.
Constructor  Un constructor es un método que inicia un objeto inmediatamente después de su creación. De esta forma nos evitamos el tener que iniciar.
Metodología de Programación Ayudantía 5 lelagos.ublog.cl 2009.
Clases y Objetos en Java ELO329: Diseño y Programación Orientados a Objetos.
Programación Orientada a Objetos
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
Funciones y Clases Amigas (Friend)‏ Miembros Estáticos (Static)
Introducción a la Programación Orientada a Objetos (POO)
2008 Escuela de Informática y Telecomunicaciones, DuocUC Escuela de Informática y Telecomunicaciones Clase 9: Funciones, variables y arreglos en BASH Nombre.
UNIVERSIDAD TECNICA DE BABAHOYO EXTENSION DE QUEVEDO  Espinales Lisseth G RUPO N º 2 Temas:  Herencia  Polimorfismo  Encapsulamiento  2 Ejemplos Estudiante.
M.C. Pedro Bello López 1 IMPLEMENTACIÓN. M.C. Pedro Bello López2.
 Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman unos valores de entrada, llamados parámetros y proporcionan.
Clases “ Es una Abstracción de un elemento del mundo real ”
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. La parte ingenieril de un proceso de desarrollo de software, comprende realizar un diseño del sistema antes de empezar a escribir.
1 La sobrecarga de funciones y operadores le da al programador la oportunidad de asignar nuevos significados a las funciones y a los operadores.
Modelado UML Diagrama de Clases
Prof. Manuel B. Sánchez. Declaración de Objetos Una vez que la clase ha sido implementada se pueden declarar objetos como variables locales de métodos.
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.
Prof. Manuel B. Sánchez.  El origen del término polimorfismo es simple: proviene de las palabras griegas poly (muchos) y morphos (forma) multiforme.
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.
Transcripción de la presentación:

Informática II Prof. Dr. Gustavo Patiño MJ

En el lenguaje C++ es perfectamente valido crear apuntadores para clases. Para ello es importante recordar que una vez una clase ha sido declarada, una clase se vuelve un nuevo tipo de dato. De este modo es posible usar el nombre de la clase como el tipo de dato para el apuntador. Por ejemplo: En este caso, prect es un apuntador para un objeto de la clase RectanguloC. RectanguloC* prect;

Igual que sucede con estructuras de datos, a fin de referirse directamente a un miembro de un objeto apuntado por un apuntador, es posible usar el operador flecha (->).

Area de a: 2 Area de *b: 12 Area de *c: 2 Area de d[0]: 30 Area de d[1]: 56 Area de a: 2 Area de *b: 12 Area de *c: 2 Area de d[0]: 30 Area de d[1]: 56

A continuación se presenta un resumen de la manera como se puede interpretar un apuntador y los operadores de clases (*, &,., ->, [ ]).

Un destructor es una función especial definida como parte de una clase. Dicha función es automáticamente llamada cuando un objeto es destruido, sea debido a que el ámbito de existencia ha terminado (por ejemplo cuando un objeto es definido como local a una función, y la función termina), o debido a que un objeto fue definido mediante asignación dinámica de memoria, y dicha memoria es liberada usando el operador delete.

Al definir el destructor, éste debe tener el mismo nombre de la clase, pero precedido del signo (~) y no puede ni retornar un valor, ni recibir cualquier tipo de parámetros. El uso de destructores es especialmente apropiado cuando un objeto asigna memoria dinámica durante su tiempo de vida, y al momento de dicho objeto ser destruido se desea liberar la memoria reservada para dicho objeto.

El objeto es creado Longitud de linea es : 6 El objeto es borrado El objeto es creado Longitud de linea es : 6 El objeto es borrado Ejemplo 1 de Destructor

Ejemplo 2 de Destructor

Una característica relevante de la OOP y de las clases en C++ es la herencia. Ella permite crear clases que son derivadas de otras clases, de modo que automáticamente incluyen algunos atributos y miembros de su ancestro, además de sus propios atributos y miembros.

Por ejemplo, imagínese que se desean crear las clases CPoligono, CRectangulo y CTriangulo. Dichos elementos poseen algunas propiedades en común La clase Cpoligono tendría miembros como el ancho y el largo que son comunes a los tres tipos de clases.

De este modo las clases que son derivadas de otras clases, heredan todos los miembros accesibles de la clase base. Esto significa que si una clase incluye un miembro A, y dicha clase es usada para derivar otra clase con otro miembro B, la clase derivada contendrá ambos miembros, A y B.

A fin de derivar una clase desde una anterior, se usan los dos puntos (:) en la declaración de la clase derivada, siguiendo el siguiente formato: class nombre_clase_derivada: public nombre_clase_base {...; }; class nombre_clase_derivada: public nombre_clase_base {...; };

El especificador de acceso public puede ser reemplazado por cualquiera de los otros dos especificadores de acceso: protected o private. Este especificador de acceso limita la accesibilidad de los miembros heredados de la clase base. Los miembros con un nivel más accesible son heredados con dicho nivel, mientras que los miembros con un nivel de acceso igual o más restringido, mantienen su nivel restrictivo en la clase derivada.

Ejemplo de clases derivadas

Los objetos de las clases Crectangulo y Ctriangulo contienen cada uno miembros y atributos heredados de la clase Cpoligono. Dichos atributos son ancho, largo, y def_valores().

Dado que se desea que los atributos ancho y largo sean accesibles por los miembros de las clases derivadas Crentangulo y Ctriangulo, y no solamente por los miembros de Cpoligono, dichos atributos se han definido con acceso protected, en lugar de private.

Accesopublicprotectedprivate Miembros de la misma clasesi Miembros de clases derivadassi no No miembrossino

En el ejemplo previo, los atributos heredados por las clases Crentangulo y Ctriangulo tienen los mismos permisos de acceso que dichos atributos tenian en su clase : Esto se debe a que se ha utilizado la palabra clave public para definir la relación de herencia sobre cada clase derivada: class CRectangulo: public CPoligono {... }

En principio, una clase derivada hereda cada miembro de una clase base, excepto: Su constructor y destructor. Sus amigos.

Aunque los constructores y los destructores de una clase base no son heredados en sí mismos, su constructor por defecto (esto es, el constructor sin parámetros) y su destructor, son siempre llamados cuando un nuevo objeto de una clase derivada es creado o destruido. Si la clase base no tiene constructor por defecto, o se desea que un constructor sobrescrito sea llamado cuando un nuevo objeto derivado es creado, es necesario especificar esto en cada definición de constructor de la clase derivada: derived_constructor_name (parameters) : base_constructor_name (parameters) {...}

madre: sin parametros! hija: con parametro int! madre: con parametro int! hijo: con parametro int! madre: sin parametros! hija: con parametro int! madre: con parametro int! hijo: con parametro int!

Note la diferencia entre cuál constructor de la clase madre es llamado cuando un nuevo objeto hija o hijo es creado. La diferencia entre ambos llamados se debe a la declaración del constructor de la clase hijo e la clase hija:

En C++ es perfectamente posible que una clase herede atributos y miembros de más de una clase. Esto se hace simplemente separando las diferentes clases base con comas en la declaración de la clase derivada. Por ejemplo, si previamente se tenia una clase específica para imprimir por pantalla un cierto resultado, y se desea que las clases CRectangulo y CTriangulo hereden sus atributos y miembros, además de aquellos heredados de la clase Cpoligono, la declaración de estas clases debe escribirse de la siguiente manera:

Ejemplo de herencia múltiple