El documento describe el polimorfismo y la herencia en programación orientada a objetos. El polimorfismo permite que diferentes objetos respondan de manera diferente al mismo mensaje. La herencia permite que las clases derivadas hereden propiedades de clases padre. Se provee un ejemplo de sobrecarga de operadores para ilustrar polimorfismo y se explica herencia simple y múltiple. También se describen funciones virtuales.
Tecnológico Nacional de México
Ingeniería en Sistemas Computacionales
Programación orientada a objetos
Unidad 1: introduccion al paradigma de la POO
Programación en C++
Tecnológico Nacional de México
Ingeniería en Sistemas Computacionales
Programación orientada a objetos
Unidad 1: introduccion al paradigma de la POO
Programación en C++
La programacion orientada a objetos es un paradigma que utiliza objetos como elementos fundamentales en la construcción de la solución. Surge en los años 70. Un objeto es una abstracción de algún hecho o cosa del mundo real que tiene atributos que representan sus características o propiedades y métodos que representan su comportamiento o acciones que realizan. Todas las propiedades y métodos comunes a los objetos se encapsulan o se agrupan en clases. ¨Una clase es una plantilla o un prototipo para crear objetos, por eso se dice que los objetos son instancias de clases. Lenguaje de programación: C++, Java, C#, VB.Net, etc
This Powerpoint presentation covers following topics of C Plus Plus:
Features of OOP
Classes in C++
Objects & Creating the Objects
Constructors & Destructors
Friend Functions & Classes
Static data members & functions
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Herencia
• Polimorfismo
Creado por Ing. Alvaro Enrique Ruano
La programacion orientada a objetos es un paradigma que utiliza objetos como elementos fundamentales en la construcción de la solución. Surge en los años 70. Un objeto es una abstracción de algún hecho o cosa del mundo real que tiene atributos que representan sus características o propiedades y métodos que representan su comportamiento o acciones que realizan. Todas las propiedades y métodos comunes a los objetos se encapsulan o se agrupan en clases. ¨Una clase es una plantilla o un prototipo para crear objetos, por eso se dice que los objetos son instancias de clases. Lenguaje de programación: C++, Java, C#, VB.Net, etc
This Powerpoint presentation covers following topics of C Plus Plus:
Features of OOP
Classes in C++
Objects & Creating the Objects
Constructors & Destructors
Friend Functions & Classes
Static data members & functions
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Herencia
• Polimorfismo
Creado por Ing. Alvaro Enrique Ruano
Modelo curricular por ciclos propedéuticos y por competencias, para programas técnicos y tecnológicos articulados con profesionales y formación para el trabajo
Si bien los hospitales conjuntan a profesionales de salud que atienden a la población, existe un equipo de organización, coordinación y administración que permite que los cuidados clínicos se otorguen de manera constante y sin obstáculos.
Mario García Baltazar, director del área de Tecnología (TI) del Hospital Victoria La Salle, relató la manera en la que el departamento que él lidera, apoyado en Cirrus y Estela, brinda servicio a los clientes internos de la institución e impulsa una experiencia positiva en el paciente.
Conoce el Hospital Victoria La Salle
Ubicado en Ciudad Victoria, Tamaulipas, México
Inició operaciones en el 2016
Forma parte del Consorcio Mexicanos de Hospitales
Hospital de segundo nivel
21 habitaciones para estancia
31 camas censables
13 camillas
2 quirófanos
+174 integrantes en su plantilla
+120 equipos médicos de alta tecnología
+900 pacientes atendidos
Servicios de +20 especialidades
Módulos utilizados de Cirrus
HIS
EHR
ERP
Estela - Business Intelligence
Escaneo y eliminación de malware en el equiponicromante2000
El malware tiene muchas caras, y es que los programas maliciosos se reproducen en los ordenadores de diferentes formas. Ya se trate de virus, de programas espía o de troyanos, la presencia de software malicioso en los sistemas informáticos siempre debería evitarse. Aquí te muestro como trabaja un anti malware a la hora de analizar tu equipo
Los desafíos de calidad de software que nos trae la IA y los LLMsFederico Toledo
En esta charla, nos sumergiremos en los desafíos emergentes que la inteligencia artificial (IA) y los Large Language Models (LLMs) traen al mundo de la calidad del software y el testing. Exploraremos cómo la integración, uso o diseño de modelos de IA plantean nuevos retos, incluyendo la calidad de datos y detección de sesgos, sumando la complejidad de probar algo no determinístico. Revisaremos algunas propuestas que se están llevando adelante para ajustar nuestras tareas de testing al desarrollo de este tipo de sistemas, incluyendo enfoques de pruebas automatizadas y observabilidad.
2. Polimorfismo
• Una de las características más importantes de la
programación orientada a objetos es la capacidad de
que diferentes objetos responden a órdenes similares
de modo diferentes.
• Identificador de mensaje y operadores sobrecargados.
El identificador de mensaje y operador invocan una
operación específica sobre un objeto. Cada uno
establece la selección del significado uniforme de la
operación en particular que se desea realizar.
3. • En términos generales, Polimorfismo se define
como la calidad o estado de ser capaz de asumir
formas diferentes.
• En la solución de un problema orientado a objetos,
polimorfismo puede aplicarse a cualquier objetos en
una operación, o función.
• (En la POO) el polimorfismo se refiere al hecho de
que una misma operación puede tener diferente
comportamiento en diferentes objetos. En otras
palabras, diferentes objetos reaccionan al mismo
mensaje de manera diferente.
Polimorfismo
4. Polimorfismo
(Ejemplo Sobrecarga)
class complejo //Nombre de la clase
{
public :
complejo( double = 0.0, double = 0.0 ); //Constructor
complejo operator + ( const complejo & ) const; //Sobrecarga
private:
double real, imaginario; };
complejo::complejo( double a, double b ) // Constructor de la clase
{ real = a; imaginario = b; }
complejo complejo::operator + (const complejo &a) const
{ complejo c; //Define un objeto complejo
c.real = real + a.real; //Define de la operación llevada a cabo por el operador
c.imaginario = imaginario+a.imaginario;
return c; //Retorno del valor adquirido }
La Sobrecarga De Operadores Es Un
Ejemplo Muy Claro de Polimorfismo.
Donde se sobrecarga el operador es
donde se aplica el polimorfismo.
5. • En términos generales, La herencia es el acto de adquirir una
posesión, condición, o característica de generaciones
pasadas.
• En la solución de un problema orientado a objetos un tipo de
objeto hereda propiedades que caracterizan otro tipo de
objeto.
• Las propiedades de los objetos son dadas por la descripción
de la clase, esto implica una jerarquía de clases, donde una
clase es una subclase de otra.
• Los objetos que son los instancias de las subclases tienen
propiedades dadas dentro de la descripción de la subclase
así como también propiedades heredadas dadas dentro de la
clase padre y todas las clases antecesoras.
Herencia
6. De la que se
hereda
La que hereda
Superclase Subclase
Clase Padre Clase hijo
Clase Base Clase Derivada
• La herencia se apoya en el significado de ese concepto en la vida
diaria.
• Así, las clases básicas (base class) o fundamentales se dividen en
subclases (derived class).
Terminología
7. • Una clase utilizada para derivar nuevas clases se conoce como clase
base (padre, ascendiente), y una clase creada de otra clase se llama
clase derivada (hija, descendiente, subclase).
• En un lenguaje Orientado a Objetos la herencia se manifiesta con la
creación de un tipo definido por el usuario, que puede heredar las
características de otra clase ya existente o derivar las suyas a otra nueva
clase.
• Cuando se hereda, las clases derivadas reciben las características
(estructuras de datos y funciones) de la clase original , a las que se
pueden añadir nuevas características o modificar las características
heredadas.
• La herencia se aplica para extender y reutilizar el código existente:
• Los objetos se pueden construir de modo incremental a partir de
otros objetos y pueden compartir código y estructuras de datos
• Los algoritmos generales se pueden escribir de modo que se pueden
reutilizar para nuevos tipos de objetos, incluso después que los
algoritmos originales se han compilado.
Conceptualización
8. • Es la propiedad que permite a los objetos construirse a partir de
otros objetos. Este principio consiste en que cada clase puede
dividirse en subclases.
• Las instancias heredan (usualmente) todas, y únicamente, las
características de las clases a las que pertenecen, pero, también,
es posible, en un sistema orientado a objetos, que se permita
que las clases hereden características de superclases más
generales.
• En ese caso, las características heredadas pueden ser ignoradas
(overriden) y se pueden agregar características adicionales para
tratar excepciones.
Herencia
9. • De esta forma la herencia provee la potencialidad para construir
soluciones nuevas a problemas agregando el incremento de la
capacidad a soluciones existentes del problema mediante subclases.
• Las instancias de una subclase representan una especialización de
instancias descritas por una clase padre.
• La instancia de la subclase tiene todos los atributos dados por la
clase padre, más los atributos adicionales o agregados de la
subclase.
• La instancia de la subclase responde al mismo conjunto de
mensajes dados en la clase padre, los mensajes adicionales se dan
en la descripción de la subclase.
Herencia
10. • Se realiza tomando una clase existente y derivando nuevas clases
de ella.
• La clase derivada hereda las estructuras de datos y funciones de
la clase original, Además, se pueden añadir nuevos miembros a
las clases derivadas y los miembros heredados pueden ser
modificados.
• Una clase utilizada para derivar nuevas clases se denomina clase
base (padre, superclase, ascendiente).
• Una clase creada de otra clase se denomina clase derivada o
subclase. A su vez una clase derivada puede ser utilizada como
una clase base para derivar más clases.
• Por consiguiente, se pueden construir jerarquías de clases, en las
que cada clase sirve como padre o raíz de una nueva clase.
Herencia Simple
11. Ejemplo De Herencia Simple
class Barco {
protected: char* nombre; float peso;
public: //Constructores y demás funciones básicas de barco };
class Carguero: public Barco // Esta es la manera de especificar que hereda de Barco.
{
private: float carga; //faltaría el resto de cosas };
class Acorazado: public Barco
{
private: int numeroArmas; int Soldados;
// El resto de cosas };
12. Herencia Múltiple
Es aquella en la cual una clase derivada tiene más
de una clase base. Aunque el concepto de
herencia múltiple es muy útil, el diseño de clases
suele ser más complejo, y en ocasiones es
preferible realizar la aplicación con herencia
múltiple mediante emulación de herencia simple.
13. Ejemplo de Herencia Múltiple
Si una clase recibe propiedades de más de una clase base, la
herencia es múltiple.
Características A
Características B
Características A
Características B
Características C
Características D
Características E
Características A
Características B
Características C
14. Funciones virtual
• Diseñar e implementar sistemas que sean
extensible más fácilmente
• Programas escritos para procesar todos los
objetos de clases existentes genéricamente
en una jerarquía
15. Suponga un conjunto de superficies tales como Circle, Triangle, etc.
Cada superficie tiene su propia función para dibujarse, pero es posible
llamarlas a ella invocando solamente la función draw de la clase base
Shape, el compilador determina dinámicamente (en tiempo de ejecución)
a cual llamar.
En la clase base se declara a draw como virtual.
Se sobrescribe draw en cada clase derivada,
Declaración virtual
La palabra reservada virtual antes del prototipo de la función:
virtual void draw() const;
Un puntero de la clase base a un objeto de la clase derivada, llamará la
función draw correctamente,
Shape->draw();
Funciones virtual