Introducción a la Programación Orientada a Objetos
La programación orientada a objetos es una nueva forma de enfocar el trabajo de la programación. La característica más importante de un lenguaje orientado a objetos es el objeto. Un objeto es simplemente una entidad lógica que contiene datos y un código o datos que pueden ser privados del objeto e inaccesibles desde fuera de él.
Partes importantes en la definición de POO
- Utiliza objetos, no algoritmos, como bloques de construcción lógicos.
- Cada objeto es una instancia de una clase.
- Las clases se relacionan una con otra por medio de relaciones de herencia.
Tipos de datos
Asimilables a enteros
- carácter (char)
- enteros (int)
- booleanos (bool)
- enumeraciones (enum)
Fraccionarios
Dos versiones: float y double.
Otros tipos
- Ausencia de dato, sin valor (void).
- Modificadores de tipos numéricos:
- largo (long)
- corto (short)
- con signo (signed)
- sin signo (unsigned)
Sentencias de control de flujo
Las sentencias especifican y controlan el flujo de ejecución del programa. Si no existen sentencias específicas de selección o salto, el programa se ejecuta de forma secuencial en el mismo orden en que se ha escrito el código fuente (es el que podríamos considerar orden natural de ejecución).
Tipos de sentencias
- De etiqueta
- De expresión
- Compuestas
- De selección
- De iteración
- De salto
- De declaración
- Bloques de intento
Sentencias de etiqueta
En C++ existen tres clases de sentencias etiquetadas: las etiquetas directas, las sentencias case y las default, estas últimas se utilizan en conjunción con las sentencias switch.
Sentencias de expresión
Podríamos decir que son las que no pertenecen a ninguno de los otros grupos y que, en la práctica, son las más abundantes. Generalmente son asignaciones o invocaciones de funciones.
Sentencias compuestas
Las sentencias compuestas, también denominadas bloques, se utilizan en aquellas situaciones en que la sintaxis espera una sentencia pero se necesita usar varias.
Sentencias de selección
Las sentencias de selección o de control de flujo, pueden decidir entre varios cursos de acción distintos en función de ciertos valores. Existen dos tipos de estas sentencias de selección: if…else y switch.
Sentencias de iteración
Las sentencias de iteración permiten repetir un conjunto de sentencias ejecutando un bucle. En C++ existen tres formas de iteraciones: los bucles while, do…while y for.
Sentencias de salto
Las sentencias de salto permiten transferir el control del programa de forma incondicional. Existen cuatro de estas sentencias: break, continue, y return.
Sentencias de declaración
Este tipo de sentencias introducen uno o más identificadores en un bloque.
Bloques de intento
Estas sentencias deben estar seguidas de una sentencia catch.
Operadores
Tabla de operadores Relacionales
Operador | Acción |
---|---|
> | Mayor que |
>= | Mayor que o igual |
< | Menor que |
<= | Menor que o igual |
== | Igual |
!= | No igual |
Tabla de operadores Lógicos
Operador | Acción |
---|---|
&& | Y |
|| | O |
! | NO |
Expresiones y operadores
Tabla de caracteres especiales
Código | Significado |
---|---|
\b | Espacio atrás |
\f | Salto de página |
\n | Salto de línea |
\r | Retorno de carro |
\t | Tabulación horizontal |
\» | Comillas dobles |
\’ | Comilla simple |
\0 | Nulo |
\\ | Barra invertida |
\v | Tabulación vertical |
\a | Alerta |
\o | Constante octal |
\x | Constante hexadecimal |
Tabla de operadores aritméticos
Operador | Acción |
---|---|
– | Resta, también menos monario |
+ | Suma |
* | Multiplicación |
/ | División |
% | División en módulo |
— | Decremento |
++ | Incremento |
Objetos (ejemplos)
La característica más importante de un lenguaje orientado a objetos es el objeto. Un objeto es simplemente una entidad lógica que contiene datos y un código que manipula estos datos.
Objeto | Objeto |
---|---|
Nombre del objeto | calculadora |
Atributos (propiedades) |
|
Método (acciones / operaciones) |
|
Programación de Tipos de Datos Abstractos y sus Relaciones
Dentro de esta sección presentamos los tipos de datos abstractos como un concepto básico de orientación a objetos.
Tipos de datos abstractos (TDAs)
Definición (Tipo de Datos Abstracto) Un tipo de datos abstracto (TDA) se caracteriza por las siguientes propiedades:
- Exporta un tipo.
- Exporta un conjunto de operaciones. Este conjunto es llamado interface.
- Las operaciones de la interface son el único y exclusivo mecanismo de acceso a la estructura de datos del TDA.
Objetos
Objeto: Un objeto es una unidad que engloba en sí mismo datos y procedimientos necesarios para el tratamiento de esos datos.
En otras palabras, un objeto es un conjunto de software de datos y procedimientos que actúan sobre estos datos. La mezcla de datos y métodos proporciona un medio más exacto de representar los objetos del mundo real en software.
Estructura de un objeto
Las relaciones permiten que el objeto se inserte en la organización y están formadas esencialmente por punteros a otros objetos.
Las propiedades distinguen un objeto determinado de los restantes que forman parte de la misma organización y tiene valores que dependen de la propiedad de que se trate. Las propiedades de un objeto pueden ser heredadas a sus descendientes en la organización.
Los métodos son las operaciones que pueden realizarse sobre el objeto, que normalmente estarán incorporados en forma de programas (código) que el objeto es capaz de ejecutar y que también pone a disposición de sus descendientes a través de la herencia.
Los métodos son subrutinas que definen la interfaz de una clase, sus capacidades y comportamiento.
Un método ha de tener por nombre cualquier identificador legal distinto de los ya utilizados por los nombres de la clase en que está definido. Los métodos se declaran al mismo nivel que las variables de instancia dentro de una definición de clase.
Definición (Clase): Una clase es la implementación de un tipo de datos abstracto (TDA). Define atributos y métodos que implementan la estructura de datos y operaciones del TDA, respectivamente.
Abstracción
Abstracción consiste en aislar un elemento de su contexto o del resto de los elementos que lo acompañan.
Encapsulamiento
Es el proceso de empaquetar los datos junto con sus métodos.
Modularidad
Ocultación de la implementación
Se refiere a la protección de la implementación interna de un objeto.
Herencia
La herencia es un mecanismo que permite la definición de una clase a partir de la definición de otra ya existente. La herencia permite compartir automáticamente métodos y datos entre clases, subclases y objetos.
Una superclase puede tener cualquier número de subclases.
Una subclase puede tener sólo una superclase.
Definición (Herencia): Herencia es el mecanismo que permite que un clase A herede propiedades de una clase B. Decimos «A hereda de B». Objetos de la clase A tienen así acceso a los atributos y métodos de la clase B sin necesidad de redefinirlos. La siguiente definición describe dos términos con los que podemos hacer referencia a las clases involucradas cuando se usa la herencia.
Definición (Superclase/Subclase): Si la clase A hereda de la clase B, entonces B es la superclase de A. A es subclase de B. Los objetos de una subclase pueden ser usados en las circunstancias donde son usados los objetos de la superclase correspondiente.