Variables estáticas en clases, estructuras y enumerados
Clase 10 de 27 • Curso de Programación Orientada a Objetos en Swift
Contenido del curso
Tipos de Propiedades
- 5

Propiedades Almacenadas en Swift: Uso y Ejemplos Prácticos
04:49 min - 6

Propiedades Lazy en Programación: Uso y Ventajas
07:17 min - 7

Propiedades Computadas en Swift: Uso y Ejemplos Prácticos
10:31 min - 8

Variables de solo lectura en programación y su uso en estructuras y clases
05:14 min - 9

Implementación de Observers en Propiedades de Clases en Swift
07:18 min - 10

Variables estáticas en clases, estructuras y enumerados
Viendo ahora
Métodos, subíndices y herencia
- 11

Métodos en Clases y Estructuras: Creación y Uso Práctico
07:35 min - 12

Métodos Mutantes en Estructuras y Enumerados en Swift
09:05 min - 13

Métodos Estáticos y Herencia en Programación de Videojuegos
10:50 min - 14

Subíndices en Swift: Sintaxis y Aplicaciones Prácticas
09:02 min - 15

Manipulación de Matrices y Subíndices en Programación
12:41 min - 16

Herencia de Clases en Programación Orientada a Objetos
10:14 min - 17

Sobrescritura de Métodos y Propiedades en Clases Derivadas
12:12 min
Inicializadores o constructores
- 18

Inicializadores en Sweet: Creación y Uso Efectivo de Constructores
06:51 min - 19

Modificación de Constructores y Parámetros Opcionales en Swift
00:10 min - 20

Constructores Designados y de Conveniencia en Herencia de Clases
09:38 min - 21

Constructores y manejo de inicialización opcional en Swift
08:42 min - 22

Destructores en Programación: Liberación de Recursos Automática
07:13 min
Encadenamiento opcional
Conclusión
¿Cómo manejar propiedades estáticas en Swift?
En Swift, las propiedades estáticas tienen un rol crucial cuando queremos compartir información entre todas las instancias de una clase, estructura o enumerado. A diferencia de las propiedades computadas regulares, estas son comunes a todos los objetos originados a partir de un mismo tipo de dato. Conociendo el concepto y el uso de la palabra reservada static, podemos administrar mejor los recursos y optimizar nuestro código.
¿Qué son las propiedades estáticas y cómo se declaran?
Las propiedades estáticas representan variables que son universales para todas las instancias de un tipo de dato determinado. Esto significa que, aunque haya múltiples instancias, solo existirá una única versión de esa propiedad. Para declararlas, utilizamos la palabra clave static.
struct EjemploStruct {
static var propiedadComun: String = "Valor compartido"
static var propiedadComputada: Int {
return 42
}
}
En el ejemplo anterior, propiedadComun y propiedadComputada pertenecen a EjemploStruct y todos los objetos derivados de esta estructura accederán al mismo valor.
¿Cómo se accede a las propiedades estáticas?
El acceso a estas propiedades no se hace a través de una instancia, sino que se realiza mediante la estructura, clase o enumerado directamente.
print(EjemploStruct.propiedadComun) // Imprime "Valor compartido"
print(EjemploStruct.propiedadComputada) // Imprime 42
¿Existen diferencias al trabajar con class en lugar de static?
En clases, el uso de class en lugar de static permite que las subclases sobrescriban las propiedades computadas. Esto proporciona flexibilidad para que cada subclase pueda definir su propio comportamiento sobre esas propiedades.
class EjemploClase {
class var propiedadComputada: Int {
return 100
}
}
class SubClase: EjemploClase {
override class var propiedadComputada: Int {
return 200
}
}
print(EjemploClase.propiedadComputada) // Imprime 100
print(SubClase.propiedadComputada) // Imprime 200
¿Qué aplicaciones prácticas tienen las propiedades estáticas?
Las propiedades estáticas son ideales cuando necesitas una variable que todos puedan compartir y acceder sin crear instancias adicionales. Algunos ejemplos incluyen:
- Contadores globales: para rastrear el número total de instancias creadas.
- Constantes universales: como el número pi, útiles en cálculos distribuidos.
- Datos compartidos: como un presupuesto familiar donde todos los miembros puedan descontar o sumar fondos.
Una buena práctica es implementar conceptos como un presupuesto compartido en una clase o estructura, tal y como lo harías si varios miembros de una familia debieran colaborar con un recurso común.
Implementación práctica
Aquí tienes un ejemplo práctico que implementa un presupuesto compartido entre instancias:
class Familia {
static var presupuesto: Double = 1000.0 // Presupuesto compartido
func gastar(dinero: Double) {
Familia.presupuesto -= dinero
}
func agregarFondos(dinero: Double) {
Familia.presupuesto += dinero
}
}
let miembro1 = Familia()
let miembro2 = Familia()
miembro1.gastar(dinero: 150.0)
print(Familia.presupuesto) // Imprime 850.0
miembro2.agregarFondos(dinero: 200.0)
print(Familia.presupuesto) // Imprime 1050.0
Este enfoque permite que cada miembro de Familia opere sobre el presupuesto compartido, mostrando cómo cada cambio afecta inmediatamente al total disponible.
Experimenta con tus propias clases y estructuras para comprender mejor las propiedades estáticas y cómo pueden ayudarte a optimizar y compartir recursos dentro de tu código. A través de estos conceptos, dominarás la gestión de variables comunes entre instancias y podrás aplicar mejor las propiedades estáticas o computadas en tus proyectos. ¡Sigue aprendiendo y compartiendo en el foro tus experiencias!