Está en la página 1de 10

23

3
Clases en programación

Es una plantilla o un modelo que va a servir para crear objetos. Una clase
define un conjunto de atributos (datos) y métodos (comportamiento) que
los objetos puedan tener.
Los atributos de una clase son las características o propiedades que los
objetos de esa clase tienen. Los métodos son las acciones que los objetos
pueden realizar.
Tipos de clases
Simple: Contiene datos y funciones.
Abstracta: Una función. Paramentar virtual y no pueda ser instancias por
si misma.
Clases derivadas: Herencia de una clase base.
Clase plantilla: Puede contener una o más parámetros.
Ejemplos
Carro=coche
Arrancar- ir- parar- color.
Características de una clase
Nombre de la Clase: Identifica a todos los objetos con características
comunes.
Conjunto de Atributos: Datos miembros que representan el estado de cada
objeto.
Conjunto de Métodos: Funciones miembro que permiten que los objetos
cambien de estado según su estado anterior.
Niveles de Acceso: Protegen ciertos miembros de la clase.
Abstracciones en POO

Es el proceso de identificar las cualidades esenciales de un objeto y


enfocarse en ellas, ignorando los detalles menos relevantes.
Consiste en representar una cantidad compleja mediante sus características
mas relevantes y ocultando los detalles innecesarios.
La abstracción en nuestro entorno
Cuando utilizamos un teléfono, interactuamos con él a través de su pantalla
táctil, sin necesidad de entender los complejos procesos que ocurren dentro
del dispositivo para que funcione.
Tipos de abstracciones
Abstracción de datos: Se refiere a la representación de los datos y las
operaciones que se pueden realizar con ellos, ocultando los detalles internos
de implementación.
Abstracción de procedimientos: Define una serie de pasos o instrucciones
que pueden ser invocados como una sola entidad, ocultando la complejidad
interna de su funcionamiento.
Abstracción de control: Es la representación de la lógica de control y flujo
del programa, permitiendo ocultar los detalles de cómo se realiza el control
y la ejecución de las operaciones.
Modularidad

La modularidad consiste en dividir un programa en módulos que puedan


compilarse por separado, sin embargo, tendrá conexiones con otros módulos.
La modularidad también tiene principios y son los siguientes:
Capacidad de descomponer un sistema complejo.
Capacidad de componer a través de sus módulos.
Comprensión de sistema en partes.
Ventajas de la modularidad
❖ Reutilización del código.
❖ Su mantenimiento es más sencillo.
❖ Facilita el trabajo en equipo.
❖ Facilita la Identificación y corrección de errores.
❖ Los módulos se pueden probar de forma independiente.
Limitación de responsabilidad y código de conducta
➢ Limitación de responsabilidad como principio clave.
➢ Asemeja la modularidad a un código de conducta para
desarrolladores.
➢ Promoción de la consistencia y calidad en el desarrollo de software.
Ejemplo de estructura de modularidad
Encapsulamiento

Es ocultar la implementación interna de un objeto y expones solo las


operaciones necesarias para interactuar con el.
Consiste en:
• Proteger los datos internos de un objeto • Controlar el nivel de visibilidad con
• Evitar el acceso o autorizado modificadores de acceso
• Facilitar el mantenimiento del código • Evitar los detalles de implementación
de una clase
Modificadores de acceso
PUBLIC DEFAULT
Es accesible desde cualquier lugar Es accesible desde las clases que
sin restricciones. pertenecen al mismo paquete, pero
no desde otras clases de otros
paquetes.
PRIVATE PROTECTED
Solo es accesible dentro de la misma Es accesible desde la misma clase y
clase, y no puede ser visto ni usado desde las subclases que heredan de
por otras clases. ella.

Ejemplos en la vida real


Clase de una persona
Tiene atributos privadas como nombre, edad y dirección, métodos públicos
como saludar, calcular IMC y cumplir años.
Clase de una cuenta bancaria
Tiene atributos privados como número de cuenta, saldo y titular, y métodos
públicos, como depositar, retirar y consultar saldo.
Herencia

Es el mecanismo de implementación mediante el cual elemento especies


incorporan la estructura y comportamiento de elementos generales.
Principales usos de herencia
La herencia permite que se pueda definir nuevas clases basadas de unas ya
existentes con el fin de reutilizar el código.
Ventaja
Es siempre transitiva una clase puede heredar características de superclase
que se encuentran a muchos niveles más arriba en la jerarquía de herencia.
Ejemplos
Pensemos en los mamíferos. Todos tienen una serie de característica, como
meses de gestación en la barriga de la madre, pechos en las hembras para
amamantar, y luego las funciones de dar etc.
Tipos de herencia
De implementación la implementación de los métodos es heredada, puede sobrescribirse
en las clases derivadas.

De interfaz Solo se hereda la interfaz, no hay implementación a nivel de clase base


(interfaces en Java, clase abstractas en C++).
Polimorfismo

Permite enviar mensajes iguales a objetos de tipos distintos, posibilitando


respuestas únicas. Esto Facilita la incorporación de nuevos comportamientos
sin alterar el código existente, manteniendo la interfaz sintáctica
inalterada.

Tipos
Paramétrico
Existen funciones con el mismo nombre, pero se usan diferentes parámetros
(nombre o tipo).
Sobrecarga
El mas conocido y se aplica cuando existen funciones con el mismo nombre
en clases que son completamente independientes una de la otra.
Diagrama de clases

UMI (Leguaje Unificado de Modelado) es un lenguaje de modelado visual


para el diseño, análisis e implementación, de sistemas de software. No es un
lenguaje de programación, pero se puede utilizar para generar códigos en
varios lenguajes.
Definición
Los diagramas de clases son herramientas visuales que se utilizan para
representar la estructura estática de un sistema en la programación (POO)
Componentes básicos
Clase Representa una categoría de objetos con características y
comportamientos comunes.
Relaciones Conexiones entre clases que establecen diferentes tipos de
vínculos: Asociación, Agregación.
Herramientas utilizadas
Existen varias herramientas como
Lucidchart, Microsoft Vision, Umbrella, StarUML.

También podría gustarte