Programación orientada a objetos (POO)
Clase 3: Jueves 10 nov 2022
Paradigmas de programación más utilizados en C++
- Programación estructurada: es un tipo de programación secuencial, usualmente se emplea para aprender a programar. En este tipo de programación se utilizan bloques de código secuenciales, repetitivos y condicionales.
- Programación orientada a objetos: este tipo de programación consiste en identificar un patrón de datos y encapsular los datos en una sola entidad. En este tipo de programación la entidad puede tener caracteristicas y funciones.
Programación orientada a objetos
- Es un paradigma de programación que identifica patrones de datos y los estructura en entidades llamadas objetos.
- Los objetos son creados a partir de una plantilla llamada clase.
- Un objeto se convierte en una instancia de su clase.
- Los objetos tienen diferentes datos llamados atributos y poseen funcionalidades llamadas métodos.
Los pilares de la programación orientada a objetos son:
- Abstraccion: es el proceso de definir atributos y métodos de una clase.
- Encapsulamiento: consiste en tratar los atributos y métodos de una clase como un objeto.
- Herencia: aporta modularidad al programa construyendo clases derivadas que dependen de una clase base.
- Polimorfismo: consiste en dar la misma instrucción a varios objetos y que estos respondan de diferentes maneras.
Clases
- Una clase sirve como una plantilla para crear objetos que contienen diferentes tipos de datos.
- Una clase es una construcción sintáctica que sirve para representar las caracteristicas que debe tener un objeto creado con esa clase.
- La construcción sintáctica de una clase debe ser legible para quien lee o escribe el código, a la vez debe tener sentido lógico.
Objetos
- Un objeto es una construcción definida a partir de una clase. A los objetos se les llama instancias de clase.
- Un objeto contiene los atributos de una clase y se pueden hacer operaciones sobre ellos a través de los métodos de clase.
Constructores
- Es un método que se ejecuta de manera automática al construir un objeto de una clase.
- Un constructor inicializa los atributos de la clase y puede ejecutar los métodos de la misma.
- Un constructor debe tener el mismo nombre de la clase.
- Una clase puede tener varios constructores, a esto se le llama constructores sobrecargados.
- Los constructores no tienen la facultad de retornar valores.
Tipos de constructores:
- Constructor por defecto.
- Constructor parametrizado.
- Constructor de copia.
Atributos de una clase
- Los atributos son caracteristicas individuales que diferencian a un objeto de otro y determinan su apariencia, estado u otras cualidades.
- Los atributos pueden ser variables de tipo primitivo o compuesto.
- Los atributos determinan el comportamiento del objeto respecto a los demás objetos que pueda contener el programa.
Métodos de clase
- Los métodos de clase son funciones que sirven para manipular los atributos de la clase.
- Los métodos se declaran y definen de la misma manera que una función.
Métodos set y get
- Los métodos
setygetusualmente son utilizados para acceder a un atributo privado de la clase.- método set: se encarga de modificar directamente el valor de un atributo privado de una clase.
- método get: generalmente es un método de una sola línea de código que retorna el valor actual de un atributo privado.
Instancia de objetos de una clase
- Las instancias de una clase se pueden hacer desde cualquier función externa a la clase.
- Una función externa a la clase también puede recibir una instancia de clase a través de un argumento de función.
- Generalmente, en programas pequeños, las instancias de clase se declaran dentro de la función
main().
Modificadores de acceso
Determinan el tipo de acceso de los atributos y métodos de una clase. Las funciones y clases externas tienen ciertas limitaciones de acceso a los atributos de una clase.
Los modificadores de acceso más utilizados en C++ son:
publicprivateprotected
Relación de los modificadores de acceso y las clases
- En una clase común los atributos de la clase generalmente son de tipo
private. - Los constructores de una clase por lo general son de tipo
public. Al menos un constructor de clase debe ser de tipopublic, de lo contrario no se pueden crear instancias de la clase. - Los métodos
get,seteimprimirde una clase deberán ser de tipopublico en algunos casos de tipoprotected.